我编写C malloc函数时遇到问题:
int *ptr = malloc( sizeof(int) );
或者
int *x = (int*)malloc(sizeof(int*));
或者
int *x = (int*)malloc(sizeof(int));
错误:'x':'int *'的间接级别与'int'
不同我正在使用Visual Studio 2013,Win32控制台应用程序。
可能是什么问题?
答案 0 :(得分:1)
此
int *ptr = malloc( sizeof(int) );
和
int *x = (int*)malloc(sizeof(int));
基本相同(你不需要演员)
两者都在堆上分配足够的内存来存储int,并返回指向它的指针。
然而,这是......?
int *x = (int*)malloc(sizeof(int*));
垃圾
问题在于编写合理的代码。
答案 1 :(得分:0)
这是为堆上的int分配内存的正确方法:
int *ptr = malloc( sizeof(int) );
所以你不应该有任何错误。如果您忘记包含标题<stdlib.h>
,则只应出现警告。但我对视觉工作室并不熟悉。另外,请检查您是否拼错了malloc
这个词。