在C++中,动态内存分配和释放是通过new和delete操作符来完成的。动态内存分配是在程序运行时根据需要分配内存空间,而不是在编译时确定的固定大小的静态内存分配。
int* ptr = new int; // 分配一个int类型的内存空间并返回指向该内存空间的指针
可以使用new关键字来分配不同类型的内存空间,如int、float、char等。
float* ptr = new float; // 分配一个float类型的内存空间
char* ptr = new char[10]; // 分配一个包含10个char类型元素的数组的内存空间
delete ptr; // 释放ptr指向的内存空间
对于数组类型的动态内存分配,需要使用delete[]操作符来释放内存空间,语法如下:
delete[] ptr; // 释放ptr指向的数组内存空间
示例:
int* ptr = new int; // 分配一个int类型的内存空间
*ptr = 10; // 给动态分配的内存空间赋值
cout << *ptr << endl; // 输出动态分配的内存空间的值
delete ptr; // 释放动态分配的内存空间
char* str = new char[10]; // 分配一个包含10个char类型元素的数组的内存空间
strcpy(str, "Hello"); // 给动态分配的数组赋值
cout << str << endl; // 输出动态分配的数组的值
delete[] str; // 释放动态分配的数组内存空间
动态内存分配和释放是C++编程中非常重要的概念,需要谨慎使用,避免出现内存泄漏或内存访问越界等问题。在实际编程中,建议尽量使用智能指针等更安全的方式来管理动态内存。