C++:数组和共享内存

Dan*_*ilo 3 c++ arrays shared-memory

我试图创建一块共享内存以共享一个数组,这是我的例子:

int main(){
    key_t key;
    int shm_id;
    int arr[10];

    key=ftok("~/.bashrc",1);

    shm_id = shmget(key, 10*sizeof(int), 0666 | IPC_CREAT);

    arr = (int*)shmat(shm_id, NULL, 0);

    arr[0]=101;
    printf("%d\n",arr[0]);


}
Run Code Online (Sandbox Code Playgroud)

编译时,我收到以下错误:

error: incompatible types in assignment of ‘int*’ to ‘int [10]’
Run Code Online (Sandbox Code Playgroud)

我的任务有什么问题?

sha*_*oth 7

你应该声明arr为指针,而不是数组:

int* arr;
Run Code Online (Sandbox Code Playgroud)

您不能指定指向数组shmat()的指针并返回指针.