Передача массива struct с typedef в функцию

Мне нужна помощь в программировании на C. У меня следующая ситуация:

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}
    };

Пожалуйста, не обращайте внимания на использование итальянского языка выше.

Я хочу передать массив структур с именем "product" в функцию. Например, если я хочу сделать что-то вроде

product[1].name = "Computer"

Но внутри функции, как мне это сделать? Я хотел бы знать, как вызвать эту функцию из main() и как написать прототип в моем заголовочном файле.

Заранее спасибо за любую помощь.

EDIT

Я даю вам эту тестовую программу. Она не работает, и в main нет даже вызова функции. Она просто не компилируется.

#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);
}
6
задан wiredmark 1 February 2012 в 11:20
поделиться