2010-01-14 190 views
1
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main() 
{ 
    char *a = "Hello "; 
    const char *b = "World"; 

    printf("%s", strcat(a, b)); 
    system("PAUSE"); 

    return EXIT_SUCCESS; 
} 
+3

字符串文字不可修改。 http://stackoverflow.com/questions/1614723/why-is-this-c-code-causing-a-segmentation-fault/1614739#1614739 – AnT 2010-01-14 08:19:22

回答

7

因爲你是在說你沒有自己的存儲位置寫入數據。

事實上,在運行strcat時,會在字符串a的字符之後追加字符串b的字符。但是,在字符串a之後你還沒有聲明過內存。

2

當您串聯B到A你正在寫到內存中,你沒有分配,

相關問題