#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
int main()
{
const int N = 4; // consider = sizeof(char*) instead
// your memory allocation
char* buffer = static_cast<char*>(malloc(N));
// the pointer b will accesses the value of buffer as if it was a char array
char* b = reinterpret_cast<char*>(&buffer);
// copy the char array from b to where buffer is pointing
std::copy(b, b + N, buffer);
// output
printf("The pointer returned by malloc was %p\n", buffer);
printf("The contents of buffer[0]-buffer[%d] are: ", N-1);
for(int i=0; i<N; ++i)
printf("0x%02x ", (unsigned char)buffer[i]);
printf("\n");
free(buffer);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KaW50IG1haW4oKQp7CiAgICAgY29uc3QgaW50IE4gPSA0OyAvLyBjb25zaWRlciA9IHNpemVvZihjaGFyKikgaW5zdGVhZAoKICAgICAvLyB5b3VyIG1lbW9yeSBhbGxvY2F0aW9uCiAgICAgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxvYyhOKSk7CgogICAgIC8vIHRoZSBwb2ludGVyIGIgd2lsbCBhY2Nlc3NlcyB0aGUgdmFsdWUgb2YgYnVmZmVyIGFzIGlmIGl0IHdhcyBhIGNoYXIgYXJyYXkKICAgICBjaGFyKiBiID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmJ1ZmZlcik7CgogICAgIC8vIGNvcHkgdGhlIGNoYXIgYXJyYXkgZnJvbSBiIHRvIHdoZXJlIGJ1ZmZlciBpcyBwb2ludGluZwogICAgIHN0ZDo6Y29weShiLCBiICsgTiwgYnVmZmVyKTsKCiAgICAgLy8gb3V0cHV0CiAgICAgcHJpbnRmKCJUaGUgcG9pbnRlciByZXR1cm5lZCBieSBtYWxsb2Mgd2FzICVwXG4iLCBidWZmZXIpOwogICAgIHByaW50ZigiVGhlIGNvbnRlbnRzIG9mIGJ1ZmZlclswXS1idWZmZXJbJWRdIGFyZTogIiwgTi0xKTsKICAgICBmb3IoaW50IGk9MDsgaTxOOyArK2kpCiAgICAgICAgIHByaW50ZigiMHglMDJ4ICIsICh1bnNpZ25lZCBjaGFyKWJ1ZmZlcltpXSk7CiAgICAgcHJpbnRmKCJcbiIpOwoKICAgICBmcmVlKGJ1ZmZlcik7Cn0=