0
vectors with no size
I don't know why the vector just only let me input 9 numbers. Can someone explain pls? #include <iostream> using namespace std; int main(){ int i=-1, size=1, *vector=new int[size]; do{ i++; size++; cin>>vector[i]; }while(vector[i]); return 0; }
3 ответов
+ 2
I think there's one thing you need to know: Just because you increment value of "size" it doesn't mean size of vector is increased, so what you do is, you create vector for 1 element, then you add some values to it, where actually you are doing it outside of reserved memory area, so behaviour there is undefined.
BTW I do not understand the while condition. What was the idea behind it?
+ 1
Well I figured out that size++ don't increase the size, and while the number is not 0, the while should work, and I only input positive integers. So do you know any way to make the array bigger? The while should be ok no? Thank you for the answer btw.
+ 1
You can't make the same array bigger, you can make another one that has more space and then assign it to the pointer you created. In steps it would look like:
1. Create bigger array
2. Copy values from smaller to bigger
3. Free the memory of smaller array
4. Assign bigger array to pointer.