構造体へのポインタに値を入れるときは、 mallocするか、 既に宣言した変数のアドレスをいれないといけない。
#include <stdio.h> #include <stdlib.h> struct data { int x; int y; char *z; }; int main(void){ int i,j,k; //struct data d; struct data *pd; // pd = &d; pd->x = 1; pd->y = 2; pd->z = (unsigned char*)malloc(sizeof(unsigned char) * 100); // このmallocがないと代入ができない。 for(i = 0; i<100 ; i++ ){ pd->z[i] = i+100; } printf("d.x = %d\n", pd->x); printf("d.y = %d\n", pd->y); for(i = 0; i<20 ; i++){ printf("d.z = %d\n", pd->z[i]); } //printf("*(d.z) = %d\n", *(pd->z)); return 0; }