An uninitialized variable should be a "warning" rather than a compile time error preventing you from running your application. It is basically saying that somewhere the variable was not assigned data, which is bad depending on the uses.
For example if a integer value was uninitialized and you tried to use it, the integer value can be anywhere from the most negative integer number to the most positive. And you have no control over what number that is. To prevent this you must assign it a number which is pretty normal to do anyways.
Uninitialized pointers on the other hand are more dangerous since they can point to anywhere in memory, and if you try using them in their uninitialized state you can cause wonky results ranging from garbage output, to the application crashing.
So that leaves it as, how are you initializing that variable also known as, how are you creating it.
Most of the time you can fix this just by assigning a proper value or memory to the data type.
Example would be:
Code
struct {
int myInt;
} myStruct;
struct myStruct *s; //s is not initialized
s = malloc(sizeof(struct myStruct)); //it is now fully initialized
Forgive my C as I haven't used it for a long while.
This post was edited by AbDuCt on May 6 2015 03:10pm