在C中使用malloc不起作用

时间:2013-11-02 07:55:41

标签: c malloc

我编写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控制台应用程序。

可能是什么问题?

2 个答案:

答案 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这个词。