#include <stdio.h>
#include <stdlib.h>
int main(void) {
size_t petabyte = 1024LL * 1024LL * 1024LL * 1024LL * 1024LL; // 10^15
printf("petabyte %zd \n", petabyte
); printf("sizeof(size_t) = %ld \n", sizeof(size_t));
volatile char *ptr
= (volatile char *)malloc(petabyte
); printf("malloc() - success, ptr = %p \n", ptr
);
ptr[petabyte - 1LL] = 10;
printf("ptr[petabyte - 1] = 10; - success \n");
printf("ptr[petabyte - 1] = %d \n", (int)(ptr
[petabyte
- 1LL
]));
//free((void*)ptr); // why the error is here?
//printf("free() - success \n");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKHZvaWQpIHsKCQoJc2l6ZV90IHBldGFieXRlID0gMTAyNExMICogMTAyNExMICogMTAyNExMICogMTAyNExMICogMTAyNExMOwkvLyAxMF4xNQoJcHJpbnRmKCJwZXRhYnl0ZSAlemQgXG4iLCBwZXRhYnl0ZSk7CglwcmludGYoInNpemVvZihzaXplX3QpID0gJWxkIFxuIiwgc2l6ZW9mKHNpemVfdCkpOwoJCgl2b2xhdGlsZSBjaGFyICpwdHIgPSAodm9sYXRpbGUgY2hhciAqKW1hbGxvYyhwZXRhYnl0ZSk7CglwcmludGYoIm1hbGxvYygpIC0gc3VjY2VzcywgcHRyID0gJXAgXG4iLCBwdHIpOwoJCglwdHJbcGV0YWJ5dGUgLSAxTExdID0gMTA7CglwcmludGYoInB0cltwZXRhYnl0ZSAtIDFdID0gMTA7IC0gc3VjY2VzcyBcbiIpOwoJCglwcmludGYoInB0cltwZXRhYnl0ZSAtIDFdID0gJWQgXG4iLCAoaW50KShwdHJbcGV0YWJ5dGUgLSAxTExdKSk7CgkKCS8vZnJlZSgodm9pZCopcHRyKTsJLy8gd2h5IHRoZSBlcnJvciBpcyBoZXJlPwoJLy9wcmludGYoImZyZWUoKSAtIHN1Y2Nlc3MgXG4iKTsKCQoJcmV0dXJuIDA7Cn0K