gpt4 book ai didi

c++ - 访问外部 float 组时遇到问题

转载 作者:行者123 更新时间:2023-11-30 01:22:27 28 4
gpt4 key购买 nike

我在两个文件中有以下程序

主要.cpp

    float POW10[300];
main(0
{
Fill_POW10();
}

填充.cpp

extern float *POW10;
Fill_POW10()
{
for(int i=0;i<300;i++)
{
POW10[i]=i;
}
}

这因段错误而崩溃。当我检查时,POW10 为 NULL。但是,如果我将 Fill.cpp 更改为

extern float POW10[];
Fill_POW10()
{
for(int i=0;i<300;i++)
{
POW10[i]=i;
}
}

代码运行良好。我在想 POW10 实际上是作为指向 float 的指针实现的,因此代码应该是相同的。你能解释一下为什么不是这样吗?

最佳答案

数组和指针是完全不同的类型。当你定义一个指针变量时,你得到的只是一个指针,它实际上可能指向也可能不指向任何地方。当您定义一个数组时,您会得到一个连续的对象序列。

您可能会想到函数参数类型,其中数组类型被转换为指针类型。也就是说,void foo(int arg[]) 等同于 void foo(int* arg)。这仅适用于函数参数。

关于c++ - 访问外部 float 组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16323228/

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