gpt4 book ai didi

c - 如何将 3D 字符数组传递给函数

转载 作者:行者123 更新时间:2023-12-02 06:40:56 26 4
gpt4 key购买 nike

我有一个 chars table[][][] 的 3D 数组,我想将它传递给一个 void 函数,以便它可以对其进行更改。我怎样才能做到这一点?

void make(char minor[][][]);

.....
char greater[20][30][50];
make(greater);

我想这行不通。

编辑:与此相关的另一个问题:假设我想创建一个复制函数来将字符串复制到数组中 - 我应该如何在函数中调用 strcpy?
void copy(char (*minor)[][])

{ char m[50] = "asdasdasd";
strcpy(minor[][],m);
}

最佳答案

如果您想传递一个数组,就像那个数组一样,而不是您使用 malloc 动态分配的数组。 (这将是几级指针,而不是真正的数组),以下任何函数原型(prototype)都可以工作:

  • void make(char minor[20][30][50])
  • void make(char minor[][30][50])
  • void make(char (*minor)[30][50])

  • 原因是你不能拥有像 void make(char ***minor) 这样的东西是因为 minor只会衰减为指向数组数组的指针,可以说它不会衰减不止一次。

    关于c - 如何将 3D 字符数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8380840/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com