为什么我在尝试将数组中的值写入 CSV 文件中时会出现段错误
Why do I get segfault trying to write a value in an array into a CSV file
我正在尝试以二进制或原始文件格式读取 8 位图像,并将每个像素放在 csv 文件中的一行中,并在 x、y、z 的 2 个像素内包含 12 个邻域。我一开始只是尝试将每个像素的值写入
// ----------------------- Create pointer to hold input values for ml
short p[1308*1308*200][13];
ofstream full_stack;
full_stack.open("full_stack.csv");
int index;
// // ----------------------- for loop execution
for( int x = 0; x < 1308; x++ ) {
for( int y = 0; y < 1308; y++ ) {
for( int z = 0; z < 200; z++ ) {
index = x+1308*y+1308*1308*z;
myData.read(buf, sizeof(buf));
memcpy(&value, buf, sizeof(buf));
p[index][0] = value;
}
}
}
for ( int i = 0; i < 1308*1308*200; i++){
for ( int j = 0; j < 13; j++){
full_stack << p[i][j] << endl;
}
}
full_stack.close();
}
正如@Sid_S指出的那样,您正在尝试在堆栈上声明一个 8 GB 的数组。如今,典型机器上典型应用程序中的堆栈约为 1-2 兆字节。您需要使用malloc()
、new
或使用 C++ 集合(如std::vector<short>
(动态分配数组。假设您有一个二维数组,您需要执行类似std::vector<std::vector<short>>
的操作。
相关文章:
- 为什么PyImport_ImportModule python 3.7.2 中出现段错误?
- 为什么在访问 vtkRenderWindow 的"交互器"变量时会发生段错误?
- 全局向量导致 C++ 程序结束时出现段错误
- 为什么重载运算符<<打印特征类成员会导致段错误?
- 更改条件段错误
- 使用 TTF_RenderText() 加载字体时获取段错误 TTF_OpenFontRW()
- 注册对对象工厂的调用会导致段错误
- pthread_create在构造函数段错误中
- Nanoflann发现邻居提出段错误
- cpp 在主源文件中包括.cpp文件导致错误"duplicate symbol"
- C++ 中的构造函数、继承、堆栈、堆、this-pointer 和段错误
- 具有unique_ptr的 CRTP 会导致段错误
- 增强纤维work_stealing屏障会导致段错误
- 当我返回指向结构的指针向量时出现段错误
- C++为什么我的代码没有爆炸/段错误?
- Pthread段错误,使用指向main中变量的指针
- 从生成文件编译错误:"Unable to open output file" ..."No such file or directory"
- Reader类实现中的文件读取错误
- 为什么我在尝试将数组中的值写入 CSV 文件中时会出现段错误
- 从读取到对象指针数组的文件获取段错误