gpt4 book ai didi

c++ - 在 C++ 源文件之间共享动态分配的数组

转载 作者:行者123 更新时间:2023-11-28 06:40:41 25 4
gpt4 key购买 nike

我正在尝试用两个(实际上更多,但这并不重要)源代码编译代码。在其中一个中,我声明了一个可变大小的数组,如下所示:

const int number_of_equidistant = spike_location[number_of_spikes-1];
point_type* equidistant = NULL;
equidistant = new point_type[number_of_equidistant];

只要我只在我声明它的同一个源文件中使用它,它就可以正常工作。但是,我也想在其他地方访问它(此时只是打印出内容以检查它做了它应该做的事情)这就是动态大小导致问题的地方(我尝试将大小声明为 extern const int但这没有用)。是否有解决方法,或者这是一种特别愚蠢的方法,是否应该以某种不同的方式完成?

具体报错是这样的:

debug.cpp: In function ‘void debug_initialization()’:
debug.cpp:71:56: error: storage size of ‘equidistant’ isn’t constant
extern point_type equidistant[number_of_equidistant];

在 debug.cpp 中,数组和大小是这样声明的:

extern const int number_of_equidistant;
extern point_type equidistant[number_of_equidistant];

我当然可以将其更改为列表(或堆或类似的东西),但我宁愿能够通过索引轻松访问数据。任何其他方法超出我的知识范围,所以我欢迎任何建议:)

最佳答案

你必须保持一致:

point_type* equidistant = NULL;

这表示 equidistant 是一个指针。

extern point_type equidistant[number_of_equidistant];

这表示 equidistant 是一个数组。选择一个并坚持下去。

关于c++ - 在 C++ 源文件之间共享动态分配的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26033587/

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