爲什麼在下列程序中分配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