-1

我在编写时遇到了 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 控制台应用程序。

可能是什么问题呢?

4

2 回答 2

2

这个

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

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

本质上是一样的(你不需要演员表)

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

然而,这是……?

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

垃圾

问题是编写合理的代码。

于 2013-11-02T08:01:21.107 回答
0

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

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

所以你不应该有任何错误。如果您忘记包含 header <stdlib.h>,您应该只收到警告。但我不熟悉视觉工作室。另外,请检查您没有拼错单词malloc

于 2013-11-02T08:56:03.113 回答