2

我有一个看起来像这样的结构:

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为结构正确分配内存?

4

1 回答 1

1

对于字符数组,您始终可以使用strcpy()strncpy()。其中 strncpy() 被推荐,它有助于避免缓冲区溢出。

于 2013-02-07T10:05:32.077 回答