【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 130
■ このスレッドは過去ログ倉庫に格納されています
0786デフォルトの名無しさん
2007/01/19(金) 17:42:37#define offsetof(type, member) ((unsigned int) &(((type*)0)->member))
#define N 100
typedef struct unko {
union {
struct {
int first;
int second;
};
int v[0];
};
} Unko;
int main() {
Unko *u;
u = (Unko*) malloc(offsetof(Unko, v) + sizeof(int) * N);
u->first = 334;
u->second = 666;
printf("first=%d, second=%d\n", u->v[0], u->v[1]);
return 0;
}
このコードなんですが、規格上、
&(u->v[0]) == &(u->first)、&(u->v[1]) == &(u->second) になり、
正しく動作することは保障されるでしょうか?ご教示お願いします。
■ このスレッドは過去ログ倉庫に格納されています