数组指针不返回值

问题描述 投票:0回答:0

我正在寻找一种方法来创建一个数组指针,我将根据完成的读取量分配内存

我有以下代码:

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
函数内部,当我printf
mymain->expire[0]->time
例如,没有返回值

mymain
指针工作正常,因为我有其他变量,如
idx
select_id
可以正常工作

问题只发生在

expire
指针

我应该怎么做才能解决这个问题?

还有其他更清洁的方法可以做到这一点吗?

arrays c pointers
© www.soinside.com 2019 - 2024. All rights reserved.