C++ 分配段错误

标签 c++ arrays allocation

我有这个代码:

size_t count = new_data.size();
std::cout << "got the count: " << count << std::endl;
double g_x[count];
std::cout << "First array done\n";
double g_y[count];
std::cout << "Allocated array of size" << count << std::endl;

这给了我输出:

got the count: 1506538
Segmentation fault: 11

老实说,我不明白为什么。它适用于另一个数据集,但不适用于这个数据集。

最佳答案

您可能刚刚遇到堆栈溢出。尝试动态分配内存,即使用堆。

double* g_x = new double[count];
...
delete[] g_x;

更好的解决方案是使用 std::vector<> :

#include <vector>

...

std::vector<double> g_x(count); // Creates vector with the specified size.

关于C++ 分配段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043971/

相关文章:

javascript - 在JS中获取JSON节点长度的正确方法?

c# - 无法反序列化当前的 JSON 数组(例如 [1,2,3])

C 3d 数组动态内存分配,问题,需要帮助

c++ - 仅用 10 万个存储单元对 100 万个数字进行排序

c# - 显示两个数组中的不匹配值

ios - ABPersonCopyImageData 泄漏

c - 为结构体数组分配内存时出现错误

c++ - 无法将参数 1 从 'std::shared_ptr<ChaseState>' 转换为 'std::shared_ptr<State<Cow>>

c++ - 如何阻止绘画事件传播?

c++ - 基于矩阵引起的排序对 vector 进行排序时出现段错误