【问题标题】:expected 'char *' but argument is of type 'char (*)[1000]'预期为 'char *' 但参数的类型为 'char (*)[1000]'
【发布时间】:2019-08-17 15:29:18
【问题描述】:

我一直在想办法摆脱标题所说的错误。我知道我设置了一个二维数组,然后尝试将它传递给一个要求指针的函数,它给了我一个关于参数的错误。

然后我尝试让函数接受双指针,但我的一部分代码收到另一个错误,即比较双指针和单指针的值是多么不兼容。

我也有全局变量和 typedef struct

int main() {
    char text[5][1000];
        for (int i = 0; i < parano; i++) {
        do {
            scanf("%[^\n]s", text[i]);
        }while((getchar()) != '\n');
        }

    doc = initialize_document(text);
}

document initialize_document(char *text) {

//code
}

我只需要找到一种方法可以将二维数组作为指针传递。我刚刚开始编码,所以我不确定这是否可能,所以我正在寻求帮助。

【问题讨论】:

  • 请注意,text 是一个指针,指向可能出现错误的指针

标签: c pointers


【解决方案1】:

将第 13 行更改为:

document initialize_document(const char text[5][1000]) {
  /* your code */
}

另外,你不应该使用全局变量。

【讨论】:

  • const 会是个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-04
  • 2020-07-31
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
相关资源
最近更新 更多