1、问题

今天看到进程通信通过使用内存共享来实现,看到了((void *)-1),当时一脸蒙逼,不知道什么意思。

 

2、理解

我一开始以为是空指针减1,自己好傻逼

实际意思是((void *)-1)是把-1转换成指针0xFFFFFFFF

 

3、总结

当一个函数返回指针的时候判断有没有返回错误我们可以经常这样写

void *p = NULL;

p = f1();

if (p == ((void *) -1))

    return false;

else

    return true;