编译器对以下代码段显示以下警告。请帮我改正。
if((tmp_n = (struct dot *)shmat(shm_net, NULL, 0)) == (int *) -1) { }
警告:不同指针类型的比较缺少强制转换 [默认启用]
它是一个 C 程序,此代码段用于将共享内存段附加到指针 **tmp_n,该指针的类型为 struct dot。
结构点{int权重;诠释 tmv;};
编译器对以下代码段显示以下警告。请帮我改正。
if((tmp_n = (struct dot *)shmat(shm_net, NULL, 0)) == (int *) -1) { }
警告:不同指针类型的比较缺少强制转换 [默认启用]
它是一个 C 程序,此代码段用于将共享内存段附加到指针 **tmp_n,该指针的类型为 struct dot。
结构点{int权重;诠释 tmv;};
试试这个
if((tmp_n = (struct dot *)shmat(shm_net, NULL, 0)) == (void *) -1) { }
并查看手册页,它指出:
Return Value
On success shmat() returns the address of the attached shared memory segment;
on error (void *) -1 is returned, and errno is set to indicate the cause of the error.
您需要转换-1
为与您要比较的变量相同的指针类型:
if((tmp_n = (struct dot *)shmat(shm_net, NULL, 0)) == (struct dot *) -1) { }