c - 如何对 char var[][] 进行 shmat,C

标签 c ipc shared-memory

我正在尝试将 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);

这是一个指向二维矩形数组的指针,该数组的行数和十列数未知。

关于c - 如何对 char var[][] 进行 shmat,C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43683244/

相关文章:

c: realloc() *char[] 之后双链表损坏

C 从命令行读入数学方程式

c - 格式 '%lld' 需要类型 'long long int' ,但参数 4 的类型为 'int64_t'

c - 将 mach 端口传递给子进程

c - 生产者-消费者 c - 更大值的段错误

java - 将 std*** 从 C++ 重定向到 Java 以进行日志记录

linux - 比较 Unix/Linux IPC

PHP/C++ : shm_open() error when sharing memory

c++ - boost 的进程间段管理器分配器本身可以与其他进程共享吗?

C++多进程共享内存实现