c言語のポインタ
構造体へのポインタに値を入れるときは、 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;
}