为什么在下列程序中分配x
和y
时会出现运行时错误?如何重写allocate_node
和main
以防止它?为什么这个C程序遇到运行时错误?
typedef struct
{
int x;
int y;
} Foo;
void allocate_node (Foo * f)
{
f = (Foo *) malloc (sizeof(Foo));
}
int main()
{
Foo * p;
allocate_node(p);
p->x = 2;
p->y = 3;
free(p);
}
'* f = malloc(sizeof(Foo));' – mch 2014-11-05 17:01:39
@mch谢谢,修正。 – AlexD 2014-11-05 17:03:20