#include <stdio.h>
struct bytes10
{
~bytes10() { printf("dtor %p", this); }
char _[10];
};
int main()
{
size_t size1 = ((size_t*)new int[10])[-1];
printf("%zu (0x%zx)\n", size1, size1);
printf("%zu\n", ((size_t*)new bytes10[5])[-1]);
printf("%zu\n", ((size_t*)new bytes10[6])[-1]);
printf("%zu\n", ((size_t*)new bytes10[7])[-1]);
printf("%zu\n", ((size_t*)new bytes10[65536])[-1]);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgYnl0ZXMxMAp7Cgl+Ynl0ZXMxMCgpIHsgcHJpbnRmKCJkdG9yICVwIiwgdGhpcyk7IH0KCWNoYXIgX1sxMF07Cn07CgppbnQgbWFpbigpCnsKCXNpemVfdCBzaXplMSA9ICgoc2l6ZV90KiluZXcgaW50WzEwXSlbLTFdOwoJcHJpbnRmKCIlenUgKDB4JXp4KVxuIiwgc2l6ZTEsIHNpemUxKTsKCXByaW50ZigiJXp1XG4iLCAoKHNpemVfdCopbmV3IGJ5dGVzMTBbNV0pWy0xXSk7CglwcmludGYoIiV6dVxuIiwgKChzaXplX3QqKW5ldyBieXRlczEwWzZdKVstMV0pOwoJcHJpbnRmKCIlenVcbiIsICgoc2l6ZV90KiluZXcgYnl0ZXMxMFs3XSlbLTFdKTsKCXByaW50ZigiJXp1XG4iLCAoKHNpemVfdCopbmV3IGJ5dGVzMTBbNjU1MzZdKVstMV0pOwoJcmV0dXJuIDA7Cn0=