Comment Comment by 0xdeafbeef #include <vector> #include <iostream> int main() { std::vector<int> vec = {1, 2, 3}; vec.reserve(3); std::cout << "Initial capacity: " << vec.capacity() << std::endl; std::cout << "Initial data address: " << (void*)vec.data() << std::endl; int* ptr = vec.data(); std::cout << "Pointer before push_back: " << (void*)ptr << std::endl; std::cout << "Value via pointer before push_back: " << *ptr << std::endl; std::cout << "\nPushing back 4...\n" << std::endl; vec.push_back(4); std::cout << "New capacity: " << vec.capacity() << std::endl; std::cout << "New data address: " << (void*)vec.data() << std::endl; std::cout << "\nAttempting to access data via the old pointer..." << std::endl; std::cout << "Old pointer value: " << (void*)ptr << std::endl; int value = *ptr; std::cout << "Read from dangling pointer (UB): " << value << std::endl; return 0; } ./a.out Initial capacity: 3 Initial data address: 0x517d2b0 Pointer before push_back: 0x517d2b0 Value via pointer before push_back: 1Pushing back 4...New capacity: 6 New data address: 0x517d6e0Attempting to access data via the old pointer... Old pointer value: 0x517d2b0 Read from dangling pointer (UB): 20861 parent 0xdeafbeef 1 year ago
Pushing back 4...
New capacity: 6 New data address: 0x517d6e0
Attempting to access data via the old pointer... Old pointer value: 0x517d2b0 Read from dangling pointer (UB): 20861