我想做的是创建一个二维字符串数组以下段错误立即出现,有什么问题?
void add2(char***b, char *i)
{
if (!i) {
b[0][0] = (char*) malloc(120);
sprintf(b[0][0], "%s", "hithere");
b[0][1] = (char*) malloc(120);
sprintf(b[0][1], "%s", "bithere");
} else {
strcat(b[0][0], "\\\\");
strcat(b[0][0], i);
strcat(b[0][1], "\\\\");
strcat(b[0][1], i);
}
}
void add1(char ***b)
{
add2(b,NULL);
add2(b,"one");
add2(b,"two");
add2(b,"three");
}
int main()
{
char **keys[2] = {0};
int i,j;
add1(keys);
for (i = 0; keys[i]; i++)
for (j = 0; keys[j]; j++)
{
fprintf(stderr, "%s\n", keys[i][j]);
free(keys[i][j]);
}
}