次のような構造体があります。
struct data {
int code;
char name[25], fnum[8];
};
次に、次のように共有メモリとして使用しようとします。
int dataSID = shmget(100002, sizeof(struct data), IPC_CREAT | 0666);
次のように取り付けます。
struct data *com = shmat(dataSID, 0, 0);
最後に、次のような値を入力してみます。
(*com).code = 1;
scanf("%s", (*com).name);
そして、でセグメンテーション違反が発生しscanf
ます。
私は何を間違っていますか?
shmat
構造体にメモリを適切に割り当てていますか?