c-在对malloc的调用中使用宏



我只是有点纠结于为什么这不起作用。我是不是错过了一些显而易见的东西?这就是我要做的:

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

我正在使用Xcode,在LENGTH开头的"expected")"和LENGTH结尾的"expeeded expression"出现错误。

但这没关系:

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

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

LENGTH4;取代,因此您得到

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

这在语法上是无效的。从define:中删除尾部;

#define LENGTH 4

还要注意,这与malloc无关。

相关内容

  • 没有找到相关文章