错误:从指针转换为不同大小的整数[-Werror=指针到int-cast]

问题描述 投票:0回答:1

下面是我的完整代码链接: [代码链接][1]

mm.c:543:7:错误:从指针转换为不同大小的整数 [-Werror=int-cast 指针] if ((int)(ptr = mem_sbrk(size)) == -1){ ^

我收到警告,但我的测试系统将警告视为错误

我检查了类似的答案,但它没有解决我的问题,有趣的事实是我从代码库复制了这个片段,它应该可以工作,所以为什么我收到错误。 [1]:https://onlinegdb.com/HHkE8FTov

c linux pointers
1个回答
0
投票
 if ((int)(ptr = mem_sbrk(size)) == -1){ 

由于

mem_sbrk
返回
void *
并且
ptr
char *
,因此仅当
int
void *
char *
大小相同时才有意义。即使在您的平台上确实如此,依赖它也不是一个好习惯。

© www.soinside.com 2019 - 2024. All rights reserved.