【顺序表】表的结构体和malloc解释

之前这篇文章是初学顺序表时写的,很混乱且有错,更正一下。

1.关于结构体

l:sq型指针,指向:存放【目标数据1】的首地址。

l->elem:int型指针,指向:存放【存放目标数据1的首地址】的首地址

malloc:这个函数原意是,在内存开辟一段地址,这段地址的首地址存在返回的那个指针变量里。

由于顺序表的操作特性,它选用指针作为数据结构,而指针声明一定要明确指向,所以才有malloc。

2.顺序表的正确数据结构体如下,malloc返回给结构体指针变量,那么就是在首地址后添加多个结构体。

typedef struct
{
    int *elem;
    int length;
}sq;
int main()
{
    sq *l;
    l=(sq *)malloc(sizeof(sq)*1005);
    l->length=0;
    printf("%d\n",l->length);
    return 0;
}

3.以下代码就是结构体错误,malloc返回到了存放指针变量的地址里,简单说就是在存放地址的地方后开了一堆空间——没有用,但不报错。

sq *l;
l=(sq *)malloc(sizeof(sq));
l->elem=(int *)malloc(sizeof(int)*1005);

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值