b 数组存储包含单个字符值的 a 数组的地址。但是通过调用 fun 函数,我希望每个b数组元素都可以包含字符串(多字符)值。
假设我想通过将数组指针的地址作为参数传递给fun函数来更改数组中的 * b[1]值。但是编译后出现分段错误。如何解决?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void fun(char **x)
{
strcpy(*x,"aaa");
}
int main(void)
{
int itr;
char a[5]={'a','b','c','d','e'};
char *b[5] ={&a[0],&a[1],&a[2],&a[3],&a[4]};
char *c[5]={"ab","cd","ef","gh","ij"};
for(itr=0;itr<5;itr++)
{
printf("%c\t",a[itr]);
printf("%c\t",*b[itr]);
printf("%s\n",c[itr]);
}
fun(&b[1]);
printf("%s\n",*b[1]);
return 0;
}