gpt4 book ai didi

调用一个未初始化的变量,该变量是 C t 中的函数

转载 作者:行者123 更新时间:2023-11-30 15:28:04 24 4
gpt4 key购买 nike

我有以下情况:

int aFunction() {
int cc;
double *doubleValue;
double atod();

*doubleValue = atod ("12.3", &cc);

}

据我了解,atod是一个指向函数的指针,它返回一个double,而且似乎,当atod被调用时,它没有被初始化。

我说得对吗?当此代码在生产中运行时会发生什么?

最佳答案

立即从生产中删除该代码。

您取消引用未初始化的指针并获得未定义的行为:

double *doubleValue;
*doubleValue = ...

无论如何:

double atod();

是一个函数的原型(prototype),它接受未指定数量的参数(如果未在其他地方定义,则可能会导致链接错误)并返回 double 值。要拥有函数指针,您应该编写:

double function() {
return 2.0;
}

int main()
{
double (*atod)(); // Pointer to function
atod = &function;
}

Example

关于调用一个未初始化的变量,该变量是 C t 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735466/

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