gpt4 book ai didi

c - 指针未返回正确的值

转载 作者:行者123 更新时间:2023-11-30 17:22:46 26 4
gpt4 key购买 nike

#include <stdio.h>

void readMatrix(int*a,int*b){
int r,c;
scanf("%d%d",&r,&c);
a = &r;
b = &c;


}

main(){

int a,b;
readMatrix(&a,&b);
printf("%d\n%d",a,b);
}

当我运行它并插入值 1 和 2 并打印 main 1697527160 和 1700556911 中的 a,b 变量时。我知道我可以简单地扫描 main 中的 a,b 值,但我的代码有什么问题?

最佳答案

您正在获取两个局部变量rc的地址,以修改局部变量ab >。这些仅存在于函数范围内。调用者看不到此效果。即使您设法从函数中获取 a 和/或 b,它们也将是悬空指针,因为它们指向的对象不存在于函数之外。

您可以通过使用直接传递给函数的指针来解决这些问题。这让 scanf 函数写入这些指针所指向的位置:

void readMatrix(int*a, int*b) {
scanf("%d%d", a, b);
}

关于c - 指针未返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27886232/

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