how could I edit the variables after it is initialized? To my understanding I need to use pointers, is there any article for pointers and structured arrays specifically? Any tips or alternate solutions would be much appreciated.

You don't need pointers for that. Pointers are variables that store the address to another variable (they "point" to where it is in memory). In your case, you almost got it right. Here is what you should do:

Notice that variable c is an array, and therefore, you should use the square brackets ([]) to access its elements. Careful, indices begin at 0, not 1. Once you have an element of "c", you know it's a DataContainer object, and you can dereference its member "a" using the dot ".".

EDIT: Next time, I think you should post this kind of question in the beginners forum. But always glad to help!

I strongly recommend that you don't do that.
Use a syntax like c[i].x to change the field x of element i, instead of keeping a variable that points to this element, it's safer, and much clearer that way for anybody who will read your code.

What if you create your array somewhere, then pass the variable to somebody else, then the scope in which you created your array is destroyed.. How will you make sure that your variable still points to something when you will use it? Appart from tracing back the call sequence manually in your program from the moment it has been initialized, you can't; that's very dangerous, and it might get unmaintainable very fast if your program gets big. In short it's a bad habit to take.

You don't need pointers to access an array. Simply applying the sub-script operator ([...]) to the array with an index will obtain the object at the corresponding index. For example:

123

int Array_[3];
Array_[0];

The second statement in the above code attempts to access the first "int" within the array. Note that an "index" is value that identifies an element of an array. Also note that indices begin at 0 (the first element) and end at n-1 (n is the array's length). Internally, accessing an array in this form is equivalent to this:-

*( Array_ + Index );

Note the asterisk -- the asterisk means we're dereferencing the resulting address of the "Array_ + Index" expression. You should also note that arrays are not pointers.

Thank you for the advice Terminux, I wasn't aware that it was such bad habit to do it like this. I just felt as though with my actual code (I'm in the beginning stages of game development) it would be tedious and occasionally impossible to access and change the array manually instead of just changing a pointer to a variable.