c语言学习7 - 图文

loading 分享 2026-8-23 下载文档

297.4.3 动态内存分配与释放函数在处理实际问题时,常会遇到数组的大小要在程序执行中才能确定的情况,合理的方法是在程序中再决定数组的大小。C语言提供了动态存储分配函数,可在程序运行过程中,动态分配内存区供数据存储,可根据需要指定大小,以及不需时予以释放。下面介绍动态存储分配函数中的malloc()和free(),在stdlib.h和alloc.h头文件中均含有它们的原型。30? 内存分配函数malloc()原型:void * malloc(unsigned size);功能:内存中分配一块连续的size个字节的未初始化的存储区。返回一指向该区首址的void *类型(称通用型或无类型)指针,须按实际需要的数据类型进行强制转换,才能赋值给相应的指针变量。如无法分配,则返回空指针。? 内存释放函数free()原型:void * free(void *buffer);功能:释放buffer所指向的由malloc()等内存分配函数所分配的内存块。31【例7.7】输入n和n个整数,输出其中不重复出现的整数,要求:只要内存容量许可,不对n的上限做明显的限定。#include main(){ int *p, n, i, j, ct;scanf( \p = (int *)malloc( n*sizeof(int) );if ( p == NULL ){ printf( \return -1;}32for ( i = 0; i < n; i++ )scanf( \for ( i = 0; i < n; i++ ){ for (ct = 0, j = 0; j < n; j++ )if ( p[i] == p[j] )ct++;if ( ct == 1 )printf( \}free( p );运行结果:printf( \输入:8 11 33 5 11 5 5 44 100}输出:33 44 100


c语言学习7 - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: c语言学习7 - 图文 的文档
相关推荐
相关阅读