#include <vector>
std::vector<int> v[1000];
int main()
{
return 0;
}
I just used this code with Visual Studio 2019.
Project1.exe!__CheckForDebuggerJustMyCode() Unknown
> Project1.exe!std::exchange<std::_Container_proxy *,std::nullptr_t>(std::_Container_proxy * & _Val, void * && _New_val) Line 599 C++
Project1.exe!std::vector<int,std::allocator<int>>::~vector<int,std::allocator<int>>() Line 676 C++
Project1.exe!`eh vector destructor iterator'(void * ptr, unsigned __int64 size, unsigned __int64 count, void(*)(void *) destructor) C++
Project1.exe!`dynamic atexit destructor for 'v''() C++
ucrtbased.dll!00007ffbdf8e48d7() Unknown
ucrtbased.dll!00007ffbdf8e42e5() Unknown
ucrtbased.dll!00007ffbdf8e441a() Unknown
ucrtbased.dll!00007ffbdf8e4a81() Unknown
ucrtbased.dll!00007ffbdf8e3c51() Unknown
ucrtbased.dll!00007ffbdf8e3afd() Unknown
ucrtbased.dll!00007ffbdf8e3b6a() Unknown
ucrtbased.dll!00007ffbdf8e3de4() Unknown
ucrtbased.dll!00007ffbdf8e4176() Unknown
Project1.exe!__scrt_common_main_seh() Line 297 C++
Project1.exe!__scrt_common_main() Line 331 C++
Project1.exe!mainCRTStartup() Line 17 C++
kernel32.dll!00007ffc168c7034() Unknown
ntdll.dll!00007ffc1829cec1() Unknown
access violation on 0x00007FF6087210D2. Here is a call stack
Why this code crashes? I try to install another version of visual studio (2017), but it still crashes. I've also tried reinstall Window SDK, but it doesn't work.
What can be possible reason, and how to solve it?
Second code sample:
#include <stdio.h>
#include <vector>
int main()
{
printf("before\n");
std::vector<std::vector<int>> v(3000);
printf("after\n");
return 0;
}
The exception changes for every run. One of call stack for above code is:
ConsoleApplication2.exe!std::vector<int,class std::allocator<int> >::_Getal(void) Unknown
ConsoleApplication2.exe!std::vector<int,std::allocator<int>>::vector<int,std::allocator<int>>() Line 446 C++
ConsoleApplication2.exe!std::_Default_allocator_traits<std::allocator<std::vector<int,std::allocator<int>>>>::construct<std::vector<int,std::allocator<int>>>(std::allocator<std::vector<int,std::allocator<int>>> & __formal, std::vector<int,std::allocator<int>> * const _Ptr) Line 695 C++
ConsoleApplication2.exe!std::_Uninitialized_backout_al<std::allocator<std::vector<int,std::allocator<int>>>>::_Emplace_back<>() Line 1509 C++
ConsoleApplication2.exe!std::_Uninitialized_value_construct_n<std::allocator<std::vector<int,std::allocator<int>>>>(std::vector<int,std::allocator<int>> * _First, unsigned __int64 _Count, std::allocator<std::vector<int,std::allocator<int>>> & _Al) Line 1835 C++
ConsoleApplication2.exe!std::vector<std::vector<int,std::allocator<int>>,std::allocator<std::vector<int,std::allocator<int>>>>::_Ufill(std::vector<int,std::allocator<int>> * _Dest, const unsigned __int64 _Count, std::_Value_init_tag __formal) Line 1584 C++
ConsoleApplication2.exe!std::vector<std::vector<int,std::allocator<int>>,std::allocator<std::vector<int,std::allocator<int>>>>::_Construct_n_copies_of_ty<std::_Value_init_tag>(const unsigned __int64 _Count, const std::_Value_init_tag & _Val) Line 462 C++
ConsoleApplication2.exe!std::vector<std::vector<int,std::allocator<int>>,std::allocator<std::vector<int,std::allocator<int>>>>::vector<std::vector<int,std::allocator<int>>,std::allocator<std::vector<int,std::allocator<int>>>>(const unsigned __int64 _Count, const std::allocator<std::vector<int,std::allocator<int>>> & _Al) Line 473 C++
> ConsoleApplication2.exe!main() Line 8 C++
+
this code also crashes
#include <vector>
int main()
{
auto a = new std::vector<int>[3000];
delete[] a;
return 0;
}
#include <string>
int main()
{
auto a = new std::string[3000];
delete[] a;
return 0;
}
So I doubt insufficient memory, however below code works well.
#include <vector>
int main()
{
auto a = new int[10000000];
delete[] a;
return 0;
}
I've try to uninstall all visual studio and Window Kits in visual studio installer, and reinstalled them, however, it still occurs.
I testet your program in visual studio 2019 because this is what you are using.
#include <vector>
std::vector<int> v[1000];
int main()
{
return 0;
}
It works just fine. But you know this already. I am using this in 64-bit mode. (which you have done also)
Because it crashed when you use "std::", I checked the DLL's which are loaded when using std and without. You should check the difference in DLL's. Without STD: enter image description here
With STD:
enter image description here
I am not sure if it really is a software problem. (because you mentioned you tested with visual studio 2017 and it did still crash) In that case, I would think it is a problem with your RAM. Maybe you can test your code on a different computer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With