C++ C++;:简单代码中的STXXL和VS运行时错误
我有以下代码,这是一个非常简单的测试,但VS拒绝运行它:C++ C++;:简单代码中的STXXL和VS运行时错误,c++,64-bit,runtime-error,stxxl,C++,64 Bit,Runtime Error,Stxxl,我有以下代码,这是一个非常简单的测试,但VS拒绝运行它: stxxl::syscall_file OutputFile("Data/test.bin", stxxl::file::RDWR | stxxl::file::CREAT | stxxl::file::DIRECT); typedef stxxl::VECTOR_GENERATOR<struct Rectangle, 8, 2, 524288>::result vector_type; vector_type rects(&
stxxl::syscall_file OutputFile("Data/test.bin", stxxl::file::RDWR | stxxl::file::CREAT | stxxl::file::DIRECT);
typedef stxxl::VECTOR_GENERATOR<struct Rectangle, 8, 2, 524288>::result vector_type;
vector_type rects(&OutputFile);
stxxl::syscall_file OutputFile(“Data/test.bin”,stxxl::file::RDWR | stxxl::file::CREAT | stxxl::file::DIRECT);
typedef stxxl::向量_生成器::结果向量_类型;
向量类型的rects(&OutputFile);
程序在第3行的内存位置产生运行时错误。我做错了什么?我正在为64位平台编译程序。在调试模式下,如果我按continue,程序将恢复并执行,不会出现问题。考虑以下示例:
#include <stxxl/io>
#include <stxxl/vector>
#include <iostream>
struct Rectangle {
int x;
Rectangle() = default;
};
int main() {
stxxl::syscall_file OutputFile("/tmp/test.bin", stxxl::file::RDWR |
stxxl::file::CREAT | stxxl::file::DIRECT);
typedef stxxl::VECTOR_GENERATOR<Rectangle, 8, 2, 524288>::result vector_type;
vector_type rects(&OutputFile);
Rectangle my_rectangle;
for (std::size_t i = 0; i < 1024 * 1024 * 1024; ++i)
rects.push_back(my_rectangle);
return 0;
}
#包括
#包括
#包括
结构矩形{
int x;
矩形()=默认值;
};
int main(){
stxxl::syscall_file OutputFile(“/tmp/test.bin”),stxxl::file::RDWR|
stxxl::file::CREAT | stxxl::file::DIRECT);
typedef stxxl::向量_生成器::结果向量_类型;
向量类型的rects(&OutputFile);
矩形我的矩形;
对于(std::size_t i=0;i<1024*1024*1024;++i)
矩形。向后推(我的矩形);
返回0;
}
当设备上没有足够的空间时,很容易引发错误。您可以发布运行时错误吗?考虑以下示例:
#include <stxxl/io>
#include <stxxl/vector>
#include <iostream>
struct Rectangle {
int x;
Rectangle() = default;
};
int main() {
stxxl::syscall_file OutputFile("/tmp/test.bin", stxxl::file::RDWR |
stxxl::file::CREAT | stxxl::file::DIRECT);
typedef stxxl::VECTOR_GENERATOR<Rectangle, 8, 2, 524288>::result vector_type;
vector_type rects(&OutputFile);
Rectangle my_rectangle;
for (std::size_t i = 0; i < 1024 * 1024 * 1024; ++i)
rects.push_back(my_rectangle);
return 0;
}
#包括
#包括
#包括
结构矩形{
int x;
矩形()=默认值;
};
int main(){
stxxl::syscall_file OutputFile(“/tmp/test.bin”),stxxl::file::RDWR|
stxxl::file::CREAT | stxxl::file::DIRECT);
typedef stxxl::向量_生成器::结果向量_类型;
向量类型的rects(&OutputFile);
矩形我的矩形;
对于(std::size_t i=0;i<1024*1024*1024;++i)
矩形。向后推(我的矩形);
返回0;
}
当设备上没有足够的空间时,很容易引发错误。您能发布您的运行时错误吗?这在Linux上对我有效,没有任何运行时错误。
矩形
是豆荚吗?这在您的平台上有效吗?是的,它有3个无符号整数和2个声明大小的浮点数组。我已经测试了其他的例子,结果似乎很好。我试图移除阵列,但没有任何效果。谢谢你的回答!编译器给我默认错误和第一个struct关键字。这段代码的目的是什么?这对我来说在Linux上工作没有任何运行时错误。矩形
是豆荚吗?这在您的平台上有效吗?是的,它有3个无符号整数和2个声明大小的浮点数组。我已经测试了其他的例子,结果似乎很好。我试图移除阵列,但没有任何效果。谢谢你的回答!编译器给我默认错误和第一个struct关键字。此代码的目的是什么?