我想實現這個 ls -l | myprogram。C中的分段錯誤與陣列和打印陣列正確關聯
Myprogram將pipe的輸出作爲輸入並將每個單詞放入數組中。 然後我打印出一行一行的數組,每行8個單詞。
我寫了一段代碼,但它給出了段錯誤,並且不打印我的字數組。這裏有什麼問題?初學者在這裏....
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv){
int result,i;
int j=0;
char string[80];
char wordArray [80];
do {
result=scanf("%s",string);
strcpy(wordArray[j], string);
printf("%s\n", wordArray[j]);
j++;
}
while (result!=EOF);
for (i=0; i<7;i++){
printf("%s ",wordArray[i]);
}
return 0;
}
可變wordArray是一個字符串就像變量字符串。如果你想要它是一個字符串數組,你需要一個二維數組,如下所示:char wordArray [1000] [80] – 2014-09-25 04:05:30
在程序中沒有聲明「字的數組」。你有一個char數組。 – PaulMcKenzie 2014-09-25 04:05:32
您正在嘗試讀取一個字符串,然後將其複製到一個沒有足夠空間存儲的數組中。 – 2014-09-25 04:05:40