gpt4 book ai didi

可以将指针传递给 C 编程中的 scanf 参数吗?

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

我目前正在开发一个 C 程序,我试图将一个指针作为参数传递给 scanf

例子:

int main() { 
int *num;
scanf("%d", num);
printf("%d", *num);
}

考虑到典型的 scanf 传递一个地址来存储一个值,我不明白为什么它不能存储指针持有的地址。当我尝试运行此代码块时收到内存错误。可能是什么问题?

最佳答案

只有当 num 指向有效内存时,您才能这样做。

// Not OK
// Leads to undefined behavior since num does not point
// to anything valid.
int* num;
scanf("%d",num);

// OK
int* num = malloc(sizeof(*num));
scanf("%d",num);

// Also OK
int i;
int* num = &i;
scanf("%d",num);

关于可以将指针传递给 C 编程中的 scanf 参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36094569/

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