我正在尝试将char shm[][]
var放入共享内存中,并且我有以下代码。
int main(){
int shmid;
key_t key;
char shm[15][10];
if ((key = ftok("test.c", 'R')) == -1) {
perror("ftok");
exit(1);
}
shmid=shmget(key, SHM_SIZE, IPC_CREAT | 0666);
if(shmid<0){
perror("shmget");
exit(1);
}
shm=shmat(shmid, NULL, 0);
if(shm==(void*)-1){
perror("shmat");
exit(1);
}
}
尝试编译时出现以下编译错误:
error: assignment to expression with array type
shm=shmat(shmid, NULL, 0);
难道我做错了什么?
谢谢你的帮助。
最佳答案
你要:
char (*shm)[10] = shmat(shmid, NULL, 0);
这是指向行数和列数未知的二维矩形数组的指针。