在malloc中进行类型转换
在malloc中进行类型转换
这个问题已经有答案了:
我知道这个:我需要对malloc的结果进行类型转换吗?
我已经读了这篇文章和其他相关问题,但是我仍然没有解决我的疑虑。我理解类型转换会自动进行,但是我无论读多少次这些论点,都无法理解这个错误。
主要的论点是int
和pointer
可能具有不同的大小。以一个例子为例,假设int*
的大小为8,而int
的大小为4。
int *x = (int*) malloc(sizeof(int));
首先,malloc()
分配的字节数为4,虽然变量x
将存储一个大小为8字节的指针。
我明确地将malloc的返回值转换为(int *)
,顺便说一句,这个大小为8。为什么会有任何位数的损失呢?
admin 更改状态以发布 2023年5月21日