【发布时间】:2014-08-13 21:32:58
【问题描述】:
我试图为单个枚举变量分配一些内存,但我的代码给了我分段错误。它按原样打印出 2 和 3,但最后也显示 seg fault,为什么?
我正在使用 gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
#include <stdio.h>
#include <stdlib.h>
enum direction
{
up, down, left, right
};
int main(int argc, char **argv)
{
enum direction d1;
d1 = left;
printf("%d\n", d1);
enum direction *d2;
d2 = malloc(sizeof(enum direction));
d2 = right;
printf("%d\n", d2);
free(d2);
return 0;
}
【问题讨论】:
-
尝试:*d2 = 对; printf("%d\n", *d2);
-
你编译时是否启用了任何警告?因为编译器应该闪烁警告灯。
标签: c enums segmentation-fault malloc free