Originariamente inviato da ilmo lesto
non riesco più a capire quando devo utilizzare la funzione malloc e quando no.
La allocazione dinamica della memoria serve quando si è nei seguenti casi:

a) La dimensione del blocco di memoria non è conosciuta a priori (ad esempio determinata a runtime in base ad altre condizioni).

b) La dimensione del blocco di memoria è notevolmente grande (su questo si potrebbe discutere, ovviamente ....)

c) Il blocco di memoria va allocato dinamicamente perché deve essere restituito da una funzione o in situazioni in cui si deve avere della memoria a sé stante non globale o cose del genere.

Originariamente inviato da ilmo lesto
codice:
main(){
char string1[SIZE];
char *string2;

printf("\nSTRING? ");
fgets (string1, SIZE, stdin);

string2 = string1;

puts (string2);

}
Perfetto, leggi da stdin e depositi i caratteri in string1. Poi l'indirizzo di string1 lo assegni a string2. NON copi la stringa, solo il puntatore: string2 punta all'array string1 e basta.