用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; 
} 

你有几个问题在这里:

  1. array只有10个元素,并因此没有索引10
  2. 您没有为您分配的字符串分配空间给array的前3个元素,因此可能不允许修改它们。
  3. 为什么array只有10个元素?如果你从不使用它,你为什么要为11号分配空间?

阵列中没有任何字符指针指向有效的内存位置。您需要为每个指针执行malloc以在其中存储字符串。 另外,array[10]不在您声明的array(即0到9)的索引之外。