本文讨论当一个指针指向结构体,且结构体内含指针时,如何向指针分配内存。
其实这本是一个想当简单的问题,但是笔者在使用时经常忘记,这里希望像笔者这样的初学者在学习指针时一定不要忘记为指针分配内存空间。不为指针赋初值这个不良习惯已经为笔者带来了很大的困扰。
下面是解决方法:即由外向内赋值,一定先为外层指针赋值。
下面是多项式求导的一个实例:
#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 &