2015-11-03 215 views
0

當我運行此程序時,它崩潰。 我想複製一個字符從一個字符串到另一個。 你能幫我嗎? 恩:我想有 「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; 
} 

回答

0

你有幾個問題在這裏:

  1. array只有10個元素,並因此沒有索引10
  2. 您沒有爲您分配的字符串分配空間給array的前3個元素,因此可能不允許修改它們。
  3. 爲什麼array只有10個元素?如果你從不使用它,你爲什麼要爲11號分配空間?
0

陣列中沒有任何字符指針指向有效的內存位置。您需要爲每個指針執行malloc以在其中存儲字符串。 另外,array[10]不在您聲明的array(即0到9)的索引之外。

相關問題