Necesito ayuda con la programación C. Tengo la siguiente situación:Pasando matriz de struct con typedef a una función
struct Product {
int code;
char *name;
char *spec;
int quantity;
float price;
};
typedef struct Product products[8];
products product = {
{100, "Mouse", "Ottico", 10, 8.30},
{101, "Tastiera", "Wireless", 6, 15.50},
{102, "Monitor", "LCD", 3, 150.25},
{103, "Webcam", "USB", 12, 12.00},
{104, "Stampante", "A Inchiostro", 6, 100.00},
{105, "Scanner", "Alta Risoluzione", 9, 70.50},
{106, "Router", "300 Mbps", 10, 80.30},
{107, "Lettore Mp3", "10 GB", 16, 100.00}
};
Ignore el uso del idioma italiano anterior.
Me gustaría pasar la matriz de estructuras llamada "producto" a una función. Por ejemplo, si quería hacer algo como
product[1].name = "Computer"
Pero dentro de una función, ¿cómo se supone que debo hacerlo? Me gustaría saber cómo llamar a esa función desde main() y cómo escribir el prototipo en mi archivo de cabecera.
Gracias de antemano por cualquier ayuda.
EDITAR
le estoy dando a este programa de prueba. Este no funciona y ni siquiera hay llamadas para funcionar en general. Simplemente no compila.
#include <stdio.h>
#include <stdlib.h>
void test(Card *card);
int main()
{
struct Card {
char *type;
char *name;
};
typedef struct Card cards[2];
cards card = {{"Hi", "Hi"}, {"Foo", "Foo"}};
return 0;
}
void test(Card *card) {
printf("%s", card[1].type);
}
Hola he editado la publicación principal, ¿puedes verificar qué está mal en mi sintaxis? – wiredmark
@MarcelloSilvestri en 'prueba de vacío (Tarjeta *)': no hay ningún tipo llamado 'Tarjeta' en su programa. Hay un tipo llamado 'struct Card' y un tipo llamado' cards' pero no 'Card'. – ouah