malloc函数详解,什么的详细填空
malloc的个人熟人:
malloc是一个主要用于动态分配内存的函数。
在我们的操作过程中,数组可以用来打开空间,但相对于malloc这个函数,malloc打开的空间可以在你用完内存后,很快让计算机清楚。
如何使用malloc :
指针名称=(数据类型) malloc (长度),)数据类型)表示指针。
例1(int*buffer=(int* ) malloc )8*sizeof(int ) );
此代码意味着malloc打开一个int类型、8个int大小的空间,指针buffer指向此malloc打开的空间。
例2(int**buffer=(int** ) malloc )8*sizeof(int* ) )
此代码表示malloc打开一个int**类型和八个int*大小的空间,二维指针指向此malloc打开的空间。
那么,例1和例2的区别是什么呢?
例1
如上图所示:
指针buffer指向该malloc打开的空间,malloc的开头地址是buffer的开头地址,malloc如图所示打开8个int型的空间。
例2
如上图所示:
二维指针buffer指向的对象实际上是集合,在该集合中有缓冲器1、缓冲器2、缓冲器3,缓冲器1、缓冲器2、缓冲器3分别是指向malloc的指针。
示例3 :
使用malloc打开8*8的int型空间,并随机分配值。
int i=0,k=0,j=0; int**buffer=(int** ) malloc )8*sizeof ) int* ); //定义**buffer指向malloc,malloc开辟了8个int型空间; for(I=0; i 8; I ) buffer[I]=(int* ) malloc )8*sizeof(int ); //buffer集合下的指针buffer在malloc中打开了8个int类型空间。 PS :因为只有int类型可以为buffer分配for (k=0; k 8; k ) {buffer[I][k]=rand(01; //赋值} }值得注意的是,** buffer是一个二维指针,指向malloc,需要一个接一个地打开它。