它編譯得很好,但是當我嘗試運行該程序時,出現了分段錯誤。我「不能確定哪裏出了錯。C(gcc)中的分割錯誤
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char ** argv)
{
int i, childpid;
for (i = strlen(argv[1]); i >= 0; i --) {
if (fork() == 0) {
printf("%c\n",argv[1][i]);
break;
}
}
return 0;
}
'i'是得到自己出界。嘗試'i = strlen(argv [1]) - 1'(請記住,C中的數組是*基於零的*)。 – Maroun
你如何運行它?如果你沒有參數運行它,'argv [1]'將會是'NULL'。 – unwind
@MarounMaroun除了不超出範圍 - 指針指向終止NUL字節。 – 2013-09-24 13:31:11