La malloc alloca un nuovo spazio di memoria. Non puoi usarlo nella for.

Usa la realloc

http://www.cplusplus.com/reference/cstdlib/realloc/