當我嘗試打印文件的每個字符時,我得到分段錯誤。我不明白爲什麼。我不明白我是如何得到分段錯誤
void parseStringAndDelete(char *file)
{
// I a passing "drwxr-xr-x 1 ftp ftp 0 Mar 07 12:34 A_Folder"
// as an argument for the function
int i = 0;
int k = 0;
int len = strlen(file);
int startIndex = 0;
//printf("%s\n", file);
//printf("%d\n", len);
if(file[0] == 'd')
{
for(i = 0; i<len; i++)
{
printf("%s\n", file[i]);
}
}
}
我發現的錯誤。對於printf(「%c \ n」,文件[i])而非printf(「%s \ n」,文件[i])。我相信因爲我不僅僅是一個字符串而是逐個字符地打印字符。 –
啓用編譯器警告並觀察它們。 –
正確:%s用於打印字符串,%c用於打印字符。你應該首先學會使用調試器,所以至少你會發現崩潰的線路,而不僅僅是「我得到分段故障」。其次,無論什麼時候遇到問題,都需要通過說:「我在某個地方犯了一個錯誤,我犯了什麼錯誤?」不要想:「我的代碼是正確的,爲什麼它不起作用」。總是想:「我的代碼錯了,它在哪裏錯了?」 – gnasher729