Quote:
And here is my first question: how is that dynamic memory? I have SIZE elements in it. SIZE is a number defined earlier or when program asks for it (so maybe 'cause of this 2nd thing it's dynamic?) so when I reach this number program would crash, wouldn't it?
The array size can be defined by a value determined at run-time. Additionally, since it is also possible to reassign pointers, you do have the possibility of growing or shrinking the array.
Quote:
Let's assume I have 3 movies in my base, there are available under indexes [0], [1], [2]. And now I want to erase element in the middle. So, 1) how do I remove it? By delete[1] ptr_movie? Intuition says something is wrong, if it's not - what happens with array? 2) When I remove 2nd element, should I shift all elements that stands next to it?
Shift old elements down to the end of the array. You will need some extra space to hold onto elements you want to move while you move the other elements up. Then you can resize, shrinking the array to a smaller size.