#include <stdio.h>
#include <stdlib.h>
int x;
struct A {
int a;
int b[];
};
struct B {
int a;
int *b;
};
int main(void) {
printf("%zu\n", sizeof(struct A
)); printf("%zu\n", sizeof(struct B
));
struct B b = {0};
b.
b = (int *)malloc(4 * sizeof(int));/*
struct A a = {0};
a.b = (int *)malloc(4 * sizeof(int)); // compile error
free(a.b); // don't free (may be cause to runtime error)
*/
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCB4OwoKc3RydWN0IEEgewogIGludCBhOwogIGludCBiW107Cn07CgpzdHJ1Y3QgQiB7CiAgaW50IGE7CiAgaW50ICpiOwp9OwoKaW50IG1haW4odm9pZCkgewogIHByaW50ZigiJXp1XG4iLCBzaXplb2YoeCkpOwogIHByaW50ZigiJXp1XG4iLCBzaXplb2Yoc3RydWN0IEEpKTsKICBwcmludGYoIiV6dVxuIiwgc2l6ZW9mKHN0cnVjdCBCKSk7CgogIHN0cnVjdCBCIGIgPSB7MH07CiAgYi5iID0gKGludCAqKW1hbGxvYyg0ICogc2l6ZW9mKGludCkpOwogIGZyZWUoYi5iKTsKLyoKICBzdHJ1Y3QgQSBhID0gezB9OwogIGEuYiA9IChpbnQgKiltYWxsb2MoNCAqIHNpemVvZihpbnQpKTsgLy8gY29tcGlsZSBlcnJvcgogIGZyZWUoYS5iKTsgLy8gZG9uJ3QgZnJlZSAobWF5IGJlIGNhdXNlIHRvIHJ1bnRpbWUgZXJyb3IpCiovCiAgcmV0dXJuIDA7Cn0K