Ho letto con interesse il post C difference between malloc and calloc. Sto usando malloc nel mio codice e vorrei sapere quale differenza avrò usando calloc invece.calloc v/s malloc ed efficienza temporale
Il mio presente codice (pseudo) con malloc:
Scenario 1
int main()
{
allocate large arrays with malloc
INITIALIZE ALL ARRAY ELEMENTS TO ZERO
for loop //say 1000 times
do something and write results to arrays
end for loop
FREE ARRAYS with free command
} //end main
Se uso calloc invece di malloc, Allora dovrò:
Scenario2
int main()
{
for loop //say 1000 times
ALLOCATION OF ARRAYS WITH CALLOC
do something and write results to arrays
FREE ARRAYS with free command
end for loop
} //end main
Ho tre domande:
Quale degli scenari è più efficiente se gli array sono molto grandi?
Quale degli scenari sarà più efficiente in termini di tempo se gli array sono molto grandi?
In entrambi gli scenari, sto semplicemente scrivendo su array nel senso che per ogni iterazione data nel ciclo for, sto scrivendo ogni array in sequenza dal primo elemento all'ultimo elemento. La domanda importante: se utilizzo malloc come nello scenario 1, è necessario inizializzare gli elementi a zero? Dire con malloc che ho array z = [garbage1, garbage2, garbage 3]. Per ogni iterazione, sto scrivendo gli elementi in sequenza cioè nella prima iterazione ottengo z = [some_result, garbage2, garbage3], nella seconda iterazione che ottengo nella prima iterazione ottengo z = [some_result, another_result, garbage3] e così on, quindi ho bisogno di inizializzare in modo specifico i miei array dopo malloc?
possibile duplicato di http://stackoverflow.com/questions/1538420/c-difference-between-malloc-and-calloc –
Sì, questo è il motivo per cui ho detto che ho letto l'altro post. Volevo essere un po 'più specifico qui. – yCalleecharan
Lo hai misurato da solo? Quali sono stati i risultati sulla tua macchina? – Secure