初始化我的deque或向量時,出現奇怪的錯誤。我正在使用QtCreator和一個CMake項目。向量和deque初始化或push_back導致SIGABRT錯誤
如果我使用一個雙端隊列,它將中止對初始化:
std::deque<int> myValues; // <-- abort here
for (int i=0;i<10;++i)
{
myValues.push_back(i);
}
當我使用雙端隊列,它將中止上的push_back:
std::vector<int> myValues;
for (int i=0;i<10;++i)
{
myValues.push_back(i); // <-- abort here
}
我無法找出爲什麼這種情況正在發生(它一直以這種方式工作)。這兩種異常都發生在_gnu_cxx :: new_allocator中< int> :: allocate。
任何提示?
感謝您的努力提前!
哈特穆特
分配內存似乎有些魚腥味。一個'malloc' /'free'工作,還是他們也提出SIGABRT?我的猜測是,由這些功能完成的glibc內部簿記已經搞亂了。嘗試在你的應用程序上運行Valgrind,也許它可以揭示一些光芒。 –
您必須在程序的其他地方調用一些未定義的行爲。檢查您是否正在執行諸如訪問超出內存位置等內容。 – juanchopanza