ある関数から別の関数に構造体を渡すにはどうすればよいですか?
typedef char word_t[MAX_WORD_LEN+1];
typedef struct {
int nwrds;
word_t words[MAX_PARA_LEN];
} para_t;
int
main() {
para_t onepara;
while (get_paragraph(onepara, MAX_PARA_LEN) != EOF) {
put_paragraph(onepara, MAX_SNIPPET_LEN);
}
end_output();
return 0;
}
int
get_paragraph(para_t p, int limit) {
int d, i;
word_t w;
for (i=0;i<limit;i++) {
if ((d=get_word(w, MAX_WORD_LEN))==EOF) {
return EOF;
} else if(d==WORD_FND) {
strcpy(p.words[i], w);
} else if (d==PARA_END) {
new_paragraph();
break;
}
}
return PARA_FND;
}
void
put_paragraph(para_t p, int limit) {
int i;
for (i=0;i<limit; i++) {
printf("%s\n", p.words[i]);
}
}
strcpyを使用して、単語「w」を構造体「p」(get_paragraph内)の配列にコピーしましたが、その構造体を出力しようとすると、出力を取得できません。現在、put_paragraphは文字列を出力しませんが、理由がわかりません。
get_paragraphのget_word関数は単語を識別するために正しく機能しますが、スペースを節約するためにそれを含めていません。