【发布时间】:2021-02-10 00:05:07
【问题描述】:
我正在编写一个使用 char ** 设置多维数组的程序。 然后我将 char ** 的地址传递给另一个函数来使用。
在通过地址将**指针传递给另一个函数后,我如何正确地尊重它们?
错误
c字符串数组
分段错误
int test(char *** strings){
puts(*strings[0]);
puts(*strings[1]);
return 1;
}
int main(void) {
char arr[][25] =
{ "array of c string",
"is fun to use",
"make sure to properly",
"tell the array size"
};
char ** strings = (char**)malloc(2 * sizeof(char*));
strings[0] = (char*)malloc(25 * sizeof(char));
strcpy(strings[0], arr[0]);
strings[1] = (char*)malloc(25 * sizeof(char));
strcpy(strings[1], arr[1]);
test(&strings);
return 1;
}
*Malloc 被强制转换,以防有人将其插入 C++ 操场
【问题讨论】:
-
我宁愿避开
***wiki.c2.com/?ThreeStarProgrammer
标签: c pointers pass-by-reference c-strings dereference