当我运行这个程序时,它会崩溃。我想把一个字符从一个字符串复制到另一个字符串。你能帮我吗?例如:我希望使用"wello"作为数组[0],而不是"hello"
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]: %cn", 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个元素的字符串分配空间,因此可能不允许修改它们 - 如果只使用3,为什么
array
有10个元素?如果你从来没有使用过,为什么要为11号分配空间
数组中没有任何字符指针指向有效的内存位置。您需要为每个指针执行一个malloc
,以便在其中存储一个字符串。此外,array[10]
在您为array
声明的索引之外(即0到9)。