typedef struct abc{

        int a;
        char b;

    }abc;

    typedef abc bkl[1];
    .
    .
    .

    blk b;

b=shmat(shmid, NULL, 0); //This error that (Void *) to blk
                              //But anyway blk is pointer,it isnt ?

blk *b;
b=shmat(shmid, NULL, 0); //This is correct, why? b pointor to pointer

谢谢。

最佳答案

blk b;

同:
abc b[1];

b不是您正在使用的指针。
b = shmat(shmid, NULL, 0);

不正确,因为无法将指针分配给数组。这是错误的,正如下面所说的。
int arr[3];
arr = malloc(sizeof(int)*10);

关于c - test.c:51:4:错误:从类型“void *”分配为类型“blk”时类型不兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27611621/

10-10 13:29