初始化器不是常量。的malloc

时间:2014-04-20 13:48:17

标签: c malloc

我是用C写的:

char *IP = malloc(12 * sizeof(char));

但我得到"初始化器不是常量

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您正在尝试为任何函数之外的变量赋值。在这种情况下,您只能分配常量值,这些值不是函数调用或操作的结果。例如,你可以做

int i = 3;

但不是

int i = pow(2, 2);

对于您想要做的事情,您可以在全局范围内声明变量,但随后在main中指定一个值。

答案 1 :(得分:3)

试试这个

char *IP;
...
IP = malloc(12 * sizeof(char));//in main