Warning: X may be used uninitialized in this function

one has not been assigned so points to an unpredictable location. You should either place it on the stack: or dynamically allocate memory for it: Note the use of free in this case. In general, you’ll need exactly one call to free for each call made to malloc

tech