Con questa
b = (char*)calloc(d, sizeof(char));
dato che d è 0, non creerai altro che un problema di accesso in memoria.
Per un array di stringhe, prevedi un "puntatore doppio a char" e alloca un numero di "puntatori a char" pari al numero di stringhe da memorizzare.
Poi, utilizza una stringa allocata con una dimensione abbastanza grande per l'input e infine, alloca lo spazio per questa stringa con uno dei puntatori dell'array precedente e copiaci la stringa.
Più facile a farsi che a dirsi.

Rispondi quotando