本程序在于演示最基础单链表的Node(节点)内存分配与释放
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
/***********************************************************/
// 程序名称:list.cpp // 程序目的:设计一个节点的配置与释放程序 // 程序来源:数据结构(C语言版) P-58 // 日期:2013-8-13 12:23:16 /***********************************************************/ #include <stdio.h> #include <stdlib.h> #define Max 10 struct List // 节点结构的声明 { int Number; char Name[Max]; struct list* Next; }; typedef struct List Node; typedef Node* Link; int main( void) { Link New; // 节点声明 int DataNum; // 数据编号 char DataName[Max]; // 数据名称 int i; New = (Link)malloc( sizeof(Node)); // 内存配置 if ( NULL == New) printf( "内存动态分配失败!!\n"); // 内存配置失败 else { printf( "请输入数据编号:"); scanf( "%d", &DataNum); printf( "请输入数据名称:"); scanf( "%s", DataName); New->Number = DataNum; for (i = 0; i <= Max; i++) { New->Name[i] = DataName[i]; } New->Next = NULL; printf( "\n####输出数据####\n"); printf( "数据编号:%d\n", New->Number); printf( "数据名称:%s\n", New->Name); } free(New); // 内存释放 return 0; } |
输出结果: