我如何将结构从一个函数传递到另一个函数?
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 函数可以正确识别一个单词,我没有包含它以节省空间。