Quantcast
Channel: Overcoming wrong memory allocation in C++ - Stack Overflow
Browsing all 10 articles
Browse latest View live

Answer by RBerteig for Overcoming wrong memory allocation in C++

Access to elements outside the bounds of the allocated object results in undefined behavior. That means that the implementation is free to any thing that occurs to it. It might throw and exception if...

View Article



Answer by kmarsh for Overcoming wrong memory allocation in C++

This isn't a memory allocation question per se, it is a bounds checking question. If the memory you overrun (either reading or writing) is still within the legal bounds of the program, you will not...

View Article

Answer by Chris Arguin for Overcoming wrong memory allocation in C++

The segmentation fault happens because the hardware (Memory Management Unit) reconizes that you do not have access to the region, and so it throws a exception. The OS gets that exception and decides...

View Article

Answer by lhahne for Overcoming wrong memory allocation in C++

You can avoid the problem completely by using iterators. The for loop would then look something likefor(vector<int>::iterator i = a.begin(); i != a.end(); ++i) cout << *i << "";

View Article

Answer by jopa for Overcoming wrong memory allocation in C++

I cannot comment yet, but resize() is not a hint for memory allocation.According to the STL documentation, resize(n) inserts or removes elements at the end of the vector. So after calling resize(1),...

View Article


Answer by KayEss for Overcoming wrong memory allocation in C++

Use this:a.at(i)at() will throw an out_of_range exception if the index is out of bounds.The reason that operator [] doesn't do a bounds check is efficiency. You probably want to be in the habit of...

View Article

Answer by jrharshath for Overcoming wrong memory allocation in C++

Over come this problem by being more conscientious while accessing memory: Check for bounds!

View Article

Answer by gonzohunter for Overcoming wrong memory allocation in C++

Check the size you are allocating for the vector

View Article


Answer by sharptooth for Overcoming wrong memory allocation in C++

When you call resize() the vector implementation reallocates the buffer to the size enough to store the requested number of elements - it can't be less than you require but the implementation is free...

View Article


Overcoming wrong memory allocation in C++

In a C++ program I write:#include<iostream>#include<vector>using namespace std;int main(){ vector<int> a; a.resize(1); for( int i = 0 ; i < 10 ; i++ ) { cout << a[i] <<...

View Article
Browsing all 10 articles
Browse latest View live




Latest Images