C++ C++;:简单代码中的STXXL和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(&

我有以下代码,这是一个非常简单的测试,但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(&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关键字。此代码的目的是什么?