文档介绍:c++ 及 MFC 怎么使用 malloc 函数 c++ 及 MFC 怎么使用 malloc malloc 用法函数 malloc() 和 calloc() 都可以用来动态分配内存空间, 但两者稍有区别。 malloc() 函数有一个参数, 即要分配的内存空间的大小: void *malloc(size_t size); calloc() 函数有两个参数, 分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。 void *calloc(size_t numElements,size_t sizeOfElement); 如果调用成功, 函数 malloc() 和函数 calloc() 都将返回所分配的内存空间的首地址。函数 malloc() 和函数 calloc() 的主要区别是前者不能初始化所分配的内存空间, 而后者能。如果由 malloc() 函数分配的内存空间原来没有被使用过, 则其中的每一位可能都是 0; 反之, 如果这部分内存曾经被分配过, 则其中可能遗留有各种各样的数据。也就是说,使用 malloc() 函数的程序开始时( 内存空间还没有被重新分配) 能正常进行, 但经过一段时间( 内存空间还已经被重新分配) 可能会出现问题。函数 calloc() 会将所分配的内存空间中的每一位都初始化为零, 也就是说, 如果你是为字符类型或整数类型的元素分配内存, 那麽这些元素将保证会被初始化为 0; 如果你是为指针类型的元素分配内存, 那麽这些元素通常会被初始化为空指针; 如果你为实型数据分配内存,则这些元素会被初始化为浮点型的零。需要包含头文件: #i nclude 或#i nclude 函数声明( 函数原型): void *malloc(int size); 说明: malloc 向系统申请分配指定 size 个字节的内存空间。返回类型是 void* 类型。 void* 表示未确定类型的指针。 C,C++ 规定, void* 类型可以强制转换为任何其它类型的指针。从函数声明上可以看出。 malloc 和 new 至少有两个不同: new 返回指定类型的指针,并且可以自动计算所需要大小。比如: int *p; p= new int; // 返回类型为 int* 类型( 整数型指针) ,分配大小为 sizeof(int); 或: int* parr; parr = new int [100]; // 返回类型为 int* 类型( 整数型指针),分配大小为 sizeof(int) * 100; 而 malloc 则必须由我们计算要字节数, 并且在返回后强行转换为实际类型的指针。 int* p; p= (int *) malloc (sizeof(int)); 第一、 malloc 函数返回的是 void * 类型, 如果你写成:p=