I need help with C programming. I have the following situation:
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}
};
Please disregard the use of Italian language above.
I would like to pass the array of structs named "product" to a function. For example, if I wanted to do something like
product[1].name = "Computer"
But inside of a function, how am I supposed to do it? I would like to know how to call that function from the main() and how to write the prototype in my header file.
Thanks in advance for any help.
EDIT
I'm giving you this test program. This one ain't working and there is not even call to function in the main. It just doesn't compile.
#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);
}
Here:
void foo(struct Product *bla)
{
bla[1].name = "Computer";
}
or using your type alias
void foo(products bla)
{
bla[1].name = "Computer";
}
then call the function like this:
foo(product);
Since you have the typedef (which is missing a struct
keyword in your example, by the way), you can just use that type in the function prototype:
void func(products p);
A function performing the specific operation you asked about might be:
void func(products p)
{
p[1].name = "Computer";
}
You can call it like:
func(product);
From anywhere where product
is in scope.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With