天天看點

字元指針與字元串

void getmemory(char p)

{

p=(char ) malloc(100);

strcpy(p,“hello world”);

}

int main( )

char *str=null;

getmemory(str);

printf(“%s/n”,str);

free(str);

return 0;

}會出現什麼問題?

【标準答案】程式崩潰,getmemory中的malloc 不能傳回動态記憶體, free()對str操作很危險。

參考網上的代碼:

void getmemory(char *p)

char str=null;

getmemory(&str);

個人注解:

char str=null;相當于定義一個字元串str,也是字元指針str。

getmemory(&str);傳的是字元串位址。

char *p可看成是 (char )p意為字元串str的指針p。

p為字元串str。亦是單字元的指針str。