Cita: no entiendo bien tus ejemplos :(
usas diferentes variables y cosas raras ej:
stv.sz
sv
...
me estoy volviendo loco tratando de entender ahahahha
Te pido disculpas, soy medio haragán para escribir.
Espero que quede mas entendible de este modo:
Código C:
Ver original#include <stdio.h>
typedef struct {
int *array; // arreglo
int size; // tamaño
} stArray;
void mostrar (stArray sa) {
int i;
for ( i = 0; i < sa.size; i++ )
printf ( "%d ", sa.
array[i
] ); }
int main() {
int array10[10] = {5, 8, 2, 3, 1, 4, 6, 9, 2, 10};
stArray sArray;
sArray.array = array10;
sArray.size = sizeof(array10) / sizeof(array10[0]);
mostrar(sArray);
return 0;
}
Cita: entonces TamanoArreglo sería igual a 5, cierto?. esta es la idea?, puedo usarlo de esta forma?.
A ver, cuando declaras:
Así es, "Arreglo" tiene cinco elementos a los cuales accedes mediante los índices 0 a 4 (Arreglo[0], ..., Arreglo[4])
Si "Arreglo" está declarado "por encima" de la función,
Código C:
Ver original#include <stdio.h>
int Arreglo[] = {2,5,4,8,2};
void mostrar (...
la función lo conoce (es del ámbito), por lo que podes usar sin problemas:
sizeof(Arreglo) / sizeof(int). Es mas, hasta podes omitir enviar el arreglo como parámetro:
Código C:
Ver original#include <stdio.h>
int Arreglo[] = {2,5,4,8,2};
void mostrar ( void ) {
int i;
for ( i = 0; i < sizeof(Arreglo) / sizeof(int); i++ )
...
}
En cambio cuando está declarado fuera del ámbito de la función, como en este caso:
Código C:
Ver original#include <stdio.h>
void mostrar (int *arreglo, int tamanio) {
int i;
for ( i = 0; i < tamanio; i++ )
}
int main() {
int Arreglo[] = {2,5,4,8,2};
mostrar(Arreglo, sizeof(Arreglo)/sizeof(Arreglo[0]));
...
Debes enviar su tamaño o especificarlo explícitamente. Las formas en que podes declarar los parámetros para pasar el arreglo, te lo mostró dehm en el código del mensaje
#8
Si no fuí claro en algún punto por favor decime e intento explicarlo de otro modo.
Saludos.