我在一个练习中被难住了几个小时,我必须使用函数在结构内建立一个数组并打印它。在我当前的程序中,它编译但在运行时崩溃。
#define LIM 10
typedef char letters[LIM];
typedef struct {
int counter;
letters words[LIM];
} foo;
int main(int argc, char **argv){
foo apara;
structtest(apara, LIM);
print_struct(apara);
}
int structtest(foo *p, int limit){
p->counter = 0;
int i =0;
for(i; i< limit ;i++){
strcpy(p->words[p->counter], "x");
//only filling arrays with 'x' as an example
p->counter ++;
}
return;
我确实相信这是由于我不正确地使用/组合了指针。我试过调整它们,但要么产生“不兼容的类型”错误,要么数组看似空白
}
void print_struct(foo p){
printf(p.words);
}
我还没有成功进入 print_struct 阶段,但我不确定 p.words 是否是要调用的正确项目。在输出中,我希望该函数返回一个 x 数组。如果我犯了某种严重的“我应该已经知道这个”C 错误,我提前道歉。谢谢你的帮助。