这样做
#include<stdio.h>
#define SIZE 10
char ** ReturnStringArray()
{
//How to do this?
char **strList = (char **)malloc(sizeof(char*) * SIZE);
int i = 0;
if (strList != NULL){
for (i = 0; i < SIZE; i++){
strList[i] = (char *)malloc(SIZE * sizeof(char) + 1);
if (strList[i] != NULL){
sprintf(strList[i], "Foo%d", i);
}
}
}
return strList;
}
main()
{
int i=0;
//How to do here???
char **str = ReturnStringArray();
for(i=0 ; i<SIZE ; i++)
{
printf("%s", str[i]);
}
}
- 问题 1:您的双指针声明不正确
- 问题2:你需要知道双指针中每个指针的字符串大小。。
- 问题 3:你有责任在完成后释放内存。
上面的代码示例假定字符串的最大大小不会超过 的值SIZE
,即长度为 10 个字节...
不要超出双指针的边界,因为它会崩溃