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

可能是什么问题?

int *ptr = malloc( sizeof(int) );

int *x = (int*)malloc(sizeof(int));

本质上相同(您不需要演员表)

两者都在堆上分配足够的内存来存储 int,并返回指向它的指针。

然而,这是....?

int *x = (int*)malloc(sizeof(int*));

垃圾

问题是编写合理的代码。

这是为堆上的 int 分配内存的正确方法:

int *ptr = malloc( sizeof(int) );

所以你不应该有任何错误。如果您忘记包含标头<stdlib.h> ,则应该只有警告。但我不熟悉Visual Studio。另外,请检查您是否没有拼错单词malloc

相关内容

  • 没有找到相关文章

最新更新