作者:
kai5566 (改名Dirk_AI56)
2016-02-19 23:05:07void getMem(char *ptr)
{
*ptr = (char*)malloc(200);
}
main()
{
char *str = NULL;
getMem(&str);
strcpy(str, "Hello C/C++ programming");
printf("%s\n", str);
}
我試過void getMem(char **ptr)
改成兩個星號才會過
不懂為什麼??
字串型態宣告通常為char str_name[], 所以可以知道為字元陣列.陣列名稱本身就是第一個元素的記憶體位址,又&str_name為取記憶體位址,所以需要表示成char**,也可以是char*[陣列大小].但是其實現再只有一個字串,而不是字串陣列(多個字串),所以&str_name還是指第一個字元的記憶體位址.如果為多個字串,則指第一個字串的第一個字元記憶體位址