#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
int main(void) {
int len = 8;
uint16_t *a
= calloc(len
, sizeof(uint16_t));
a[0] = 1;
a[1] = 2;
a[2] = 3;
uint16_t *b
= realloc(a
, sizeof(uint32_t) * len
);
// We have used 3 slots.
int i = 3;
while (--i >= 0) {
b[i] = (uint16_t) b[i / 2];
}
printf("0: %d\n", b
[0]); // 1 ? printf("1: %d\n", b
[1]); // 2 ? printf("2: %d\n", b
[2]); // 3 ?
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKaW50IG1haW4odm9pZCkgewoJaW50IGxlbiA9IDg7CgkKCXVpbnQxNl90ICphID0gY2FsbG9jKGxlbiwgc2l6ZW9mKHVpbnQxNl90KSk7CiAgICAKICAgIGFbMF0gPSAxOwogICAgYVsxXSA9IDI7CiAgICBhWzJdID0gMzsKICAgIAogICAgdWludDE2X3QgKmIgPSByZWFsbG9jKGEsIHNpemVvZih1aW50MzJfdCkgKiBsZW4pOwoKICAgIC8vIFdlIGhhdmUgdXNlZCAzIHNsb3RzLgogICAgaW50IGkgPSAzOwogICAgCiAgICB3aGlsZSAoLS1pID49IDApIHsKICAgIAliW2ldID0gKHVpbnQxNl90KSBiW2kgLyAyXTsKICAgIH0KCiAgICBwcmludGYoIjA6ICVkXG4iLCBiWzBdKTsgLy8gMSA/CiAgICBwcmludGYoIjE6ICVkXG4iLCBiWzFdKTsgLy8gMiA/CiAgICBwcmludGYoIjI6ICVkXG4iLCBiWzJdKTsgLy8gMyA/CgoJcmV0dXJuIDA7Cn0K