25、C语言结构体、联合体与动态内存分配全解析

C语言结构体、联合体与动态内存分配全解析

1. 结构体与联合体基础

1.1 变体记录与联合体的应用

在一些实际场景中,内存的特定区域需要在不同时间存储不同类型的值。以一个库存系统为例,该系统需要跟踪两种不同的实体:零件(parts)和子组件(subassemblies)。

零件是从其他制造商购买的小工具,具有成本、供应商等属性;子组件是由多个零件和其他子组件组合而成的,由我们自己制造。

下面是相关结构体的定义:

struct PARTINFO {
    int cost;
    int supplier;
    ...
};

struct SUBASSYINFO {
    int n_parts;
    struct {
        char partno[10];
        short quan;
    } parts[MAXPARTS];
};

库存记录包含每个条目的公共信息和一个联合体,用于存储零件信息或子组件信息:

struct INVREC {
    char partno[10];
    int quan;
    enum { PART, SUBASSY } type;
    union {
        struct PARTINFO part;
        struct SUBASSYINFO subassy;
    } info;
};

以下是一些操作 INVREC <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值