Estoy escribiendo un pequeño programa en C para hacer algunos cálculos numéricos, y necesita pasar arreglos entre funciones. Las funciones deberían aceptar y devolver punteros, ¿verdad?¿Los punteros y matrices son diferentes en C?
Por ejemplo, este (ya sé que puede no ser lo más eficiente):
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 utilizando punteros verdad?
tu ejemplo miradas multa. El tema más amplio de la diferencia entre arrays y punteros se ha abordado aquí anteriormente, como en http://stackoverflow.com/questions/660752/pointer-vs-array-in-c-non-trivial-difference. –
(Esto no calificaría como respuesta) La matriz y el álgebra del puntero difieren solo en ese tamaño (array_name) devuelve el recuento de los elementos de array_name, no el tamaño de la matriz en bytes. – jpinto3912