Sto scrivendo un piccolo programma in C per fare un po 'di numeri crunch, e ha bisogno di passare attorno agli array tra le funzioni. Le funzioni dovrebbero accettare e restituire i puntatori, giusto?I puntatori e gli array sono diversi in C?
Ad esempio, questo (lo so che non può essere la cosa più efficiente):
int* reverse(int* l, int len) {
int* reversed = malloc(sizeof(*reversed)*len);
int i, j;
for (i = 0, j = len-1; i < len; i++, j--) {
reversed[j] = l[i];
}
return reversed;
}
Am I utilizzando i puntatori a destra?
tuo esempio sguardi bene. L'argomento più ampio della differenza tra array e puntatori è stato affrontato qui in precedenza, come in http://stackoverflow.com/questions/660752/pointer-vs-array-in-c-non-trivial-difference. –
(Ciò non si qualifica come risposta) L'array e l'algebra del puntatore differiscono solo in quanto sizeof (nome_array) restituisce il conteggio degli elementi nome_array, non la dimensione della matrice in byte. – jpinto3912