2013-04-13 119 views
3
if (strlen(shortest) > strlen(longest)) { 
      char *temp; 
      strcpy(longest, temp); 
      strcpy(shortest, longest); 
      strcpy(temp, shortest); 
    } 
} 

strcpy(longest, temp) - >導致我的程序崩潰。下面是詳細的故障報告(我已經包含了正確的頭文件,因此它不說,還編譯器警告我使用uninitialied臨時變量...的):在strcpy上崩潰,不知道爲什麼?

計劃接收信號SIGSEGV,分割過錯。
__strcpy_ssse3()在../sysdeps/i386/i686/multiarch/strcpy-ssse3.S:85
85個../sysdeps/i386/i686/multiarch/strcpy-ssse3.S:沒有這樣的文件或目錄。

回答

5
 char *temp; 
     strcpy(longest, temp); 

strcpystrcpy(dst, src)strcpy(src, dst)。源是右側的參數,而不是左側的參數。

而且當你通過其值設置爲strcpychar *temp未初始化。你需要使用malloc

+2

我仍然獲得了賽格故障... – girlrockingguna

+0

@girlrockingguna你也必須解決我的回答的第二個點來分配內存temp抱着你複製字符串,例如。 – ouah

+0

Got it!非常感謝!基本上是一個malloc錯誤:O – girlrockingguna

相關問題