Tengo un problema al pasar una matriz de estructura. ¿Alguien puede explicarlo con un ejemplo (preferiblemente a través del lenguaje C)?

Pasa la matriz de estructura de la misma manera que pasa la matriz de int, o cualquier otro tipo de datos nativo para el caso.

Aquí hay un ejemplo:

#include

struct abc {
int x, y;
char z;
};

vacío print_struct_array (struct abc arr [], int size) {
int i;
para (i = 0; i <tamaño; ++ i)
printf (“x =% d, y =% d, z =% c \ n”, arr [i] .x, arr [i] .y, arr [i] .z);
regreso ;
}

int main () {
struct abc arr [] = {{1, 2, ‘a’}, {2, 3, ‘b’}, {4, 5, ‘c’}};
int size = sizeof (arr) / sizeof (arr [0]);
print_struct_array (arr, tamaño);
devuelve 0;
}

struct abc {
int x, y;
char z;
}

Declara una estructura global. De esta manera, es conocido por todas las funciones (aquí, main y print_struct_array).

struct abc arr[] = {{1, 2, 'a'}, {2, 3, 'b'}, {4, 5, 'c'}};

Esta declaración crea una matriz de struct abc, llamada arr.

int size = sizeof(arr)/sizeof(arr[0]);

Esta declaración calcula el tamaño / número de elementos en la matriz. Esto no es necesario, también podría haber definido la matriz de esta manera:

struct abc arr[3] = {{1, 2, 'a'}, {2, 3, 'b'}, {4, 5, 'c'}};

print_struct_array(arr, size);

Esta declaración pasó la referencia a la matriz de estructura a la función print_struct_array junto con el tamaño. (NOTA: arr se usa para obtener referencia a la matriz)

vacío print_struct_array (struct abc arr [], int size) {
int i;
para (i = 0; i <tamaño; ++ i)
printf (“x =% d, y =% d, z =% c \ n”, arr [i] .x, arr [i] .y, arr [i] .z);
regreso ;
}

Este bloque de código es la definición de la función print_struct_array. Podríamos haber usado struct abc * arr. Pero es esencialmente lo mismo. Obtiene la referencia a la matriz. Luego hay un bucle estándar que itera la matriz e imprime los valores.

Aquí está el enlace al código de trabajo: Ideone.com

RG

More Interesting

He estado intentando el CAT muy duro, pero cada vez que hago pruebas simuladas, no obtengo buenos resultados. Evalúo e intento estudiar con diferentes enfoques también, pero en simulaciones termino perdiendo intentos mínimos de tiempo y poca precisión y luego me desmotivo y todo se cae. ¿Qué tengo que hacer?

Acabo de conocer a un lindo zorro en Dublín. ¿Están a salvo?

Estoy almacenando mi dirección en la base de datos MySQL de esta manera ‘nombre de la calle nombre del pueblo código postal’. la base de datos muestra los datos de esta manera ‘nombre de la calle nombre del pueblo código postal’. necesito mostrar los datos en este formato ‘nombre de la calle nombre del pueblo código postal’ usar php por favor muy importante?

Tuve una mala comunicación con mi artista del tatuaje sobre el color y no estoy contento con el resultado final, ¿cómo solicito un cambio?

Conseguí un nuevo trabajo en Boston por $ 50k. ¿Puedo vivir cómodamente?

Soy un estudiante de transferencia internacional de China, y recientemente me pusieron en las listas de espera de Mount Holyoke y Bard College. ¿Hay alguna forma de sacarme de las listas de espera?

Mi coeficiente intelectual es 84. ¿Cómo puedo ingresar a Stanford?

Tengo 19 años y estudio ingeniería en una universidad de renombre. He tenido problemas de tartamudeo desde mi infancia y me temo que no tendré éxito con este problema. ¿Cómo puedo superar esto?

Estoy a punto de dar una entrevista a IBPS PO, he dado Bank of Baroda, Bank of Maharashtra e IDBI como mis opciones. ¿Son estas buenas elecciones? Si es así, ¿por qué?

Nunca me interesaron los deportes, pero me inscribí y completé 4 cursos de Coursera en economía. ¿Seré aceptado en Princeton?