如何在C中使用带函数的表指针[duplicate]

6psbrbz9  于 2022-12-11  发布在  其他
关注(0)|答案(1)|浏览(139)

此问题在此处已有答案

Passing 2D array of const size(5个答案)
3天前关闭。
此帖子已在3天前编辑并提交审核,无法重新打开帖子:
原始关闭原因未解决
我有一个结构体:

struct oda {
    char isim[10];         
    int id[1];                       
};

和2D表格创建的类型:

struct oda* tab[X][Y];

此表应在内存中动态分配,因此如果我们在x和y上放置产品,则tab[X][Y]应指向我们的结构,否则指针tab[X][Y]的值= NULL
我创建了一个函数来初始化这个表:

void init_tab_empty(struct oda** ptr_tab)
{
    int i, j;   
    
    for (i = 0; i < X; i++) {
        for (j = 0; j < Y; j++) {
            ptr_tablo[i][j] = NULL;
        }
    }
}

但这是行不通的,我有:

Cannot assign a value of type void * to an entity of type struct oda

你能帮帮我吗?
我玩了 * 的,但我不明白我还能做什么,这似乎对我来说是正确的,但不工作

njthzxwz

njthzxwz1#

如果我很好地理解了你的意思,你想把一个表传递给你的函数。那么下面的修改就可以了:

void init_tab_empty(struct oda ***tab)
{
    int i, j;   
    
    for (i = 0; i < DIM_X; i++) {
        for (j = 0; j < DIM_Y; j++) {
            tab[i][j] = NULL;
        }
    }
}

这告诉函数您将输入一个指向struct oda数据类型的指针表。
在那里,您有:

struct oda *my_tab[DIM_X][DIM_Y];
...
init_tab_empty(my_tab);

相关问题