gpt4 book ai didi

c - 函数不断返回0

转载 作者:行者123 更新时间:2023-11-30 19:03:29 24 4
gpt4 key购买 nike

我有一个相互嵌套的三个函数,它们使用与我的代码中所示相同的输入,每次在传递这三个函数后打印输入时,我都会得到“0”作为值。

我尝试删除“free()”,因为我认为这是因为我的输入得到 0 作为值,但如果我这样做,代码就会卡住。

char passcode[20];

void configuration(int **d, char *c) {
*d = malloc(sizeof(int));
**d = 1;

readn(*d, c);

return;
}

void readn(int *d, char *c) {
*d = 2;

configuration_SYS(d, c);


return;
}

void configuration_SYS(int *d, char *c) {
strcpy(c, "1234");
*d = 3;

return;
}

void main() {
int *Timeout;

configuration(&Timeout, passcode);

printf("%d\n", *Timeout);
printf("%s", passcode);
}

当我 printf 两个变量时,我期望得到一个不同于 0 的值。超时应等于 6,密码 =“1234”。

最佳答案

  • 您不需要每次使用指针时都使用malloc()malloc() 分配空间供您使用。 注意:此空间不一定已初始化(意味着数据可以是任何值)
  • 无需在 void 函数末尾添加 return;。右大括号将为您返回。
  • 您使用两个参数调用 configuration_SYS(char* abc, int* d, char* c),但该函数需要三个参数。

事实上,我无法编译这个程序。我不知道为什么它会为你打印 0。我会努力创建一个 Minimal Complete Verifiable Example

关于c - 函数不断返回0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53952016/

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