楼主:
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还是指第一个字符的内存位址.如果为多个字串,则指第一个字串的第一个字符内存位址