星期四, 5月 19, 2005

錯誤

想不到居然會犯這種錯誤

錯誤的:
void f1(char *p)
{
char *string = “Hello”;
p = string;
}

void f2()
{
char *p2;
f1(p2);
printf(p2); \\
輸出絕對不會是 Hello…
}

正確的:
void f1(char **p)
{
char *string = “Hello”;
*p = string;
}
void f2()
{
char *p2;
f1(&p2); //
要記得作取址的動作。
printf(p2);
}


沒有留言: