指向结构体(结构体内含指针)的指针

本文探讨了在C++中,当指针指向包含指针的结构体时,如何正确分配内存。作者强调了必须先为外层指针分配内存的重要性,并提供了一个关于多项式求导的实例,展示了初始化、插入元素、计算和输出的过程。通过一个实际的编程错误,提醒读者避免不初始化指针的习惯。
摘要由CSDN通过智能技术生成

  本文讨论当一个指针指向结构体,且结构体内含指针时,如何向指针分配内存。

  其实这本是一个想当简单的问题,但是笔者在使用时经常忘记,这里希望像笔者这样的初学者在学习指针时一定不要忘记为指针分配内存空间。不为指针赋初值这个不良习惯已经为笔者带来了很大的困扰。

  下面是解决方法:即由外向内赋值,一定先为外层指针赋值。

  下面是多项式求导的一个实例:

 #include<stdio.h>
#include<stdlib.h>
#define List_INIT_SIZE 100
typedef struct node {
int exponent;
int coefficient;
}Elemtype;
typedef struct {
Elemtype* elem;
int length;
int listsize;
}SqList;
void Initlist(SqList* L) {
L->elem = (Elemtype*)malloc(List_INIT_SIZE * sizeof(Elemtype));
L->length = 0;
L->listsize = List_INIT_SIZE;
}
void ListInsert_sq(SqList* L, Elemtype e) {
(L->elem)[L->length] = e;
(L->length)++;
}
void ListCompute(SqList* L) {
    int i;
for ( i &

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值