在调用 malloc 时使用宏

Using a macro in call to malloc

我只是有点困惑为什么这不起作用。我错过了一些明显的东西吗?这就是我想要做的:

#define LENGTH 4;
new->array = malloc(sizeof(int)*LENGTH);

我正在使用 Xcode 并在 LENGTH 开始时出现 'expected ")"' 错误,在 LENGTH 结束时出现 'expected expression' 错误。

但这没关系:

int size = sizeof(int)*LENGTH;
new->array = malloc(size);

第一个做不了是什么原因?

LENGTH4; 取代,所以你得到

new->array = malloc(sizeof(int)*4;);

这在语法上是无效的。从定义中删除尾随 ;

#define LENGTH 4

另请注意,这与 malloc.

无关