教学内容: 内存的使用 动态内存分配malloc函数 分配内存时使用sizeof运算符 用指针访问内存 以数组的形式访问内存 一、内存的使用 堆(heap) 在程序执行期间分配内存时,内存区域中的这个空间称为堆(heap)。,malloc,calloc 栈(stack) 一般是函数分配给本地的参数和本地变量(局部变量)。 二、动态内存分配malloc函数 在C语言中最简单的内存分配函数是malloc函数,原型如下: void *malloc( size_t size ); // 字节(BYTE) char 成功将返回分配内存空间的地址值,失败将返回NULL也就是0; 例: int *pNum=(int*) malloc(100); //分配100字节,也就是25个int类型的空间 三、分配内存时使用sizeof运算符 例: int *pNum=(int*) malloc(25*sizeof(int)); //分配字节,也就是个int类型的空间 double *pfNum=(double *) malloc(25*sizeof(double )); 四、用指针访问内存 int *pNum=(int*) malloc(25*sizeof(int)); int i,*p; p=pNum; for (i=0;i<25;i++) { *pNum++=i; } pNum=p; for (i=0;i<25;i++) { printf("%d,", *pNum++); //pNum=pNum+25; } getchar(); 五、以数组的形式访问内存 int *pNum=(int*) malloc(24*sizeof(int)); //3*8,4*6,6*4,2,12 int i; for (i=0;i<25;i++) { pNum[i]=i; } for (i=0;i<25;i++) { printf("%d,", pNum[i]); //pNum=pNum+25; }