我越來越想打印出一個字符數組用CGCC - 我應該如何正確格式化此字符串?分段錯誤
#include <stdio.h>
void printLoop(char args[])
{
char* p;
for (*p = *args; *p != '\0'; p++)
{
printf("%s", p);
}
getchar();
}
int main()
{
char *text = "Test";
printLoop(text);
}
我收到的時候分段錯誤:
Segmentation fault: 11
我讀過它有什麼與我分配給陣列的空間很大,但我不明白爲什麼我會得到這個。
將'printLoop'中的'for'更改爲'for(p = args; * p!='\ 0'; p ++)'。祝你好運。 –
嘿,謝謝我設法在另一篇文章中弄明白,但現在我收到一個格式錯誤。它印刷「Testeststt」而不僅僅是「測試」。任何想法爲什麼? –
您得到「Testeststt」,因爲您正在打印*以p *開始的字符串,而不是*由p *指向的字符。所以你打印「測試」,然後「est」,然後「st」,然後「t」。 – Beta