加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将带有typedef的struct数组传递给函数

发布时间:2020-12-16 03:35:41 所属栏目:百科 来源:网络整理
导读:我需要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},
我需要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",100.00},{105,"Scanner","Alta Risoluzione",9,70.50},{106,"Router","300 Mbps",80.30},{107,"Lettore Mp3","10 GB",16,100.00}
    };

请忽略上面使用的意大利语.

我想将名为“product”的结构数组传递给函数.例如,如果我想做类似的事情

product[1].name = "Computer"

但是在一个函数里面,我应该怎么做呢?我想知道如何从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);
}

解决方法

这里:
void foo(struct Product *bla)
{
    bla[1].name = "Computer";
}

或使用您的类型别名

void foo(products bla)
{
    bla[1].name = "Computer";
}

然后像这样调用函数:

foo(product);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读