用C语言中的另一个字符串替换字符串字符
问题描述:
当我运行此程序时,它崩溃。 我想复制一个字符从一个字符串到另一个。 你能帮我吗? 恩:我想有 “wello” 作为数组的[0],而不是 “你好”用C语言中的另一个字符串替换字符串字符
int main()
{
int N=3;
char *array[10];
array[10]=malloc(N*sizeof(char));
array[0]="hello";
array[1]="wall";
array[2]="dinner";
array[0][0]=array[1][0];
printf("array[0][0]: %c\n", array[0][0]);
printf("array[0]= %s, array[1]= %s, array[2]= %s", array[0], array[1], array[2]);
return 0;
}
答
你有几个问题在这里:
-
array
只有10个元素,并因此没有索引10
。 - 您没有为您分配的字符串分配空间给
array
的前3个元素,因此可能不允许修改它们。 - 为什么
array
只有10个元素?如果你从不使用它,你为什么要为11号分配空间?
答
阵列中没有任何字符指针指向有效的内存位置。您需要为每个指针执行malloc
以在其中存储字符串。 另外,array[10]
不在您声明的array
(即0到9)的索引之外。