gpt4 book ai didi

C 指针问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:23 28 4
gpt4 key购买 nike

我正在学习 C 中的指针。我不明白为什么这段代码在编译过程中会失败。

#include <stdio.h>

void set_error(int *err);

int main(int argc, const char * argv[])
{
const char *err;
set_error(&err);
return 0;
}


void set_error(int *err) {
*err = "Error message";
}

最佳答案

您将函数声明为指向int (int *) 的指针。但是你给它一个指向char 的指针,set_error 就这样对待它。如此更改声明:

void set_error(const char ** err)

如果您在启用警告的情况下进行编译(-Wall for GCC),它将给出以下警告:

In function 'main':
warning: passing argument 1 of 'set_error' from incompatible pointer type [enabled by default]
set_error(&err);
^
note: expected 'int *' but argument is of type 'const char **'
void set_error(int *err);
^
In function 'set_error':
warning: assignment makes integer from pointer without a cast [enabled by default]
*err = "Error message";
^

关于C 指针问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383923/

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