📜  C++ malloc()(1)

📅  最后修改于: 2023-12-03 14:39:50.058000             🧑  作者: Mango

C++中的malloc()

在C++中,malloc()是一种动态内存分配函数,它允许程序员在运行时分配指定大小的内存。malloc()函数返回指向分配内存的指针。

语法

malloc函数的语法如下:

void* malloc(size_t size);

这里,size是根据数据类型的不同而不同的字节数。

返回值

malloc()会分配所需的内存空间,并返回一个指向它开头的指针。如果分配失败,则返回NULL指针。

示例

下面是一个示例程序,展示了如何使用malloc()函数。

#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
   int* p;
   
   p = (int*) malloc(5*sizeof(int));
   if(p == NULL) {
      cout << "Memory allocation failed." << endl;
      exit(EXIT_FAILURE);
   }
 
   for(int i = 0; i < 5; i++) {
      p[i] = i+1;
      cout << "p[" << i << "] = " << p[i] << endl;
   }
   
   free(p); //释放p指向的内存

   return 0;
}

上述示例程序将分配一个容量为5个int类型的动态数组。如果内存分配成功,则使用for循环向数组中填充数据,并输出每个元素的值。最后,使用free()函数释放由malloc()函数分配的内存。

注意事项
  • 要注意动态分配的内存在使用完毕后要及时释放,否则容易出现内存泄漏的问题。
  • 在C++中,建议使用new关键字分配内存,因为它能够根据数据类型的不同自动计算需要分配的内存空间大小,且在内存不足时触发异常而非返回NULL指针。同时,使用delete关键字可以方便地释放分配的内存。
  • 在C++11标准中,新增了一种类似于C++中new/delete操作符的智能指针std::unique_ptr,它能够自动管理动态内存的分配和释放,有效地防止内存泄漏等问题。
参考文献