c - 将 2D 结构传递给 c 中的函数

标签 c 2d structure

Possible Duplicate:
Passing multidimensional array to a function C

我想将 2D 结构传递给函数这是函数的原型(prototype)和定义以及函数的“typedef”。

typedef struct {
BOOLEAN valid;
event_t event_list [MAXEVS];
int num_events;
} calentry_t;

calentry_t calendar[12] [31]; // The declaration of the structure

我如何创建函数的定义,并将其传递给二维结构以及如何传递它 请有人发现我的错误

InitializeCalendar (calentry_t *calendar){
   int x, y;
for(x = 0; x < 12; x ++) {
    if (x==2){
            for(y = 0; y <= 28; y ++){ 
                (*calendar).calendar[x][y].valid = TRUE;
            }
            for (y=29; y<= 31; y++){
                (*calendar[x][y]).valid = FALSE;
        }
    }
    else if  (x==4 || x==6 || x==9 || x==11){
        for(y = 0; y <= 30; y ++){ 
            (*calendar[x][y]).valid = TRUE;
            }
            for (y=30; y<= 31; y++){
                (*calendar)[x][y].valid = FALSE;
            }
        }
    }
}

最佳答案

void foo(calentry_t mycal[12] [31]) {
  mycal[0][1].valid =1;
}

int main(void) {
  foo(calendar);
  printf("valid: %d\n", calendar[0][1].valid);
}

关于c - 将 2D 结构传递给 c 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481630/

相关文章:

c++ - 如何读取寄存器 0x​​104567911 RBX、RCX、RDX、RSP。 C 或 C++ 中的 RBP、RSI、RDI?

Java 二维颜色数组。是否可以?

c - 受制于结构、获取和放置

c - 在 emacs 中设置自动完成模式以与 C 结构配合使用

c - MDI子窗口和状态栏C win32 API

c++ - 为什么我的代码不能与旧的访问驱动程序一起使用?

c++ - 等距坐标、菱形、瓷砖之间不需要的空间

调用函数需要带有子结构的结构

c++ - 优化器和专用于 what 命令的字符串之间的交互

javascript - 如何使用javascript生成圆