我正在寻找一种方法来创建一个数组指针,我将根据完成的读取量分配内存
我有以下代码:
struct enable_expire {
int time;
int expire_days;
}
struct main_struct {
int idx;
int select_id;
...
enable_expire **expire;
}
void my_function1(struct main_struct *mymain) {
int count = 0;
while(GetCnt(mymain) != 0) {
struct enable_expire *expire;
mymain->expire = (struct enable_expire**) calloc(1, sizeof(struct enable_expire*));
expire = (struct enable_expire*) calloc(1, sizeof(struct enable_expire));
expire[count].time = PushTime(mymain, count);
expire[count].expire_days = PushDays(mymain, count);
mymain->expire[count] = expire;
printf("Time %d Days %d\n", expire[count].time, expire[count].expire_days);
count++;
}
}
void main() {
...
my_function1(mymain);
for(int i = 0; i < 10; i++) {
if(mymain->expire[i]->time == 0 || mymain->expire[i]->expire_days == 0)
return;
printf("Time idx_%d %d Days idx_%d %d\n", i, mymain->expire[i]->time, i, mymain->expire[i]->expire_days);
}
...
}
在上面的代码中,我正确地阅读了
my_function1
。
my_function1
函数中的 printf 正确显示值。
问题出现在
main
函数内部,当我printfmymain->expire[0]->time
例如,没有返回值
mymain
指针工作正常,因为我有其他变量,如 idx
和 select_id
可以正常工作
问题只发生在
expire
指针
我应该怎么做才能解决这个问题?
还有其他更清洁的方法可以做到这一点吗?