【发布时间】:2014-11-23 11:07:22
【问题描述】:
我想通过一个函数在 C 中初始化一个字符串数组。我使用了这段代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void createArrayStrings(char ** listStr){
listStr = malloc (3 * sizeof(char*));
listStr[0] = malloc(2 * sizeof(char)); // N chars + '\0'
listStr[1] = malloc(3 * sizeof(char));
listStr[2] = malloc(4 * sizeof(char));
strcpy(listStr[0], "A");
strcpy(listStr[1], "AB");
strcpy(listStr[2], "ABC");
}
int main(int argc, const char * argv[]) {
char ** listStr = NULL;
createArrayStrings(listStr);
for (int i = 0;i<3;i++){
printf("%s\n",listStr[i]);
}
return 0;
}
但是 printf 中有一个执行错误 EXEC_BAD_ACCESS。 我的错误在哪里? 谢谢。
【问题讨论】:
标签: c arrays string parameter-passing