【发布时间】:2010-11-06 04:19:07
【问题描述】:
我想做这样的事情:
struct mystruct {
char *info;
};
// here is where I'm not sure how to
void do_something(struct mystruct **struc){
int i;
for (i = 0; i < 10; i++){
*struc[i] = (struct mystruct *) malloc (sizeof (struct mystruct));
*struc[i]->info = "foo";
}
}
int main(int argc, char *argv[]){
struct mystruct **struc;
struc = (struct mystruct **struc) malloc (sizeof(struct mystruct *struc) * 10);
dosomething(&struc);
// do something with struc and its new inserted values
return 0;
}
我不确定如何将其作为参考传递,以便在dosomething() 之后使用它
谢谢
【问题讨论】:
-
那不应该编译。您将
struct mystruct ***传递给一个接受struct mystruct **的函数。除此之外,有什么问题?函数返回后,您应该可以访问所有值。 -
@EboMike:你是对的,不是编译,这是我的问题,我想我对如何正确处理 *、*** 感到困惑。
-
void do_something(struct mystruct **struc)应该以***struc作为它的论点,我认为。
标签: c pointers reference struct