簡體   English   中英

C ++:簡單代碼中的STXXL和VS運行時錯誤

[英]C++: STXXL and VS runtime error in simple code

我有以下代碼,這是一個非常簡單的測試,但是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);

程序在第三行的內存位置產生運行時錯誤。 我究竟做錯了什么? 我正在為64位平台編譯該程序。 在“調試”模式下,如果按“繼續”,程序將繼續運行,並且沒有問題。

考慮以下示例:

#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;
}

當設備上沒有足夠的空間時,很容易引發錯誤。 您可以發布運行時錯誤嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM