在调用malloc时使用宏

时间:2015-04-05 16:28:32

标签: c macros malloc

我有点担心为什么这不起作用。我错过了一些明显的东西吗这就是我想要做的事情:

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

我正在使用Xcode并因预期")"'而导致错误。在LENGTH的开始和预期的表达'在LENGTH结束时。

但这没关系:

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

我不能做第一个的原因是什么?

1 个答案:

答案 0 :(得分:2)

LENGTH4;取代,所以你得到了

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

这在语法上是无效的。从define:

中删除尾随的;
#define LENGTH 4

另请注意,这与malloc无关。