21xrx.com
2024-09-20 00:40:15 Friday
登录
文章检索 我的文章 写文章
C++ new 的用法
2023-06-26 16:43:53 深夜i     --     --
C++ new 动态内存分配 对象创建 指针变量

C++是一门强大的编程语言,它既容易学习又提供了许多工具来帮助程序员更有效地编写代码。其中一个关键的工具是使用new运算符在程序运行时动态分配内存。

new的语法与C语言中的malloc函数类似,但其提供了更强大的功能。在C++中使用new时,需要指定要分配的内存的类型。例如,要分配一个整数变量的内存,可以这样编写代码:


int* ptr = new int;

这条语句将分配一个int类型的内存块,并将其地址保存在指针变量ptr中。可以使用delete运算符释放此内存块:


delete ptr;

在某些情况下,需要分配一个数组的内存。可以使用以下语法来动态分配一个数组:


int* ptr = new int[10];

这将分配一个包含10个整数的数组。你可以像一般数组那样访问这些元素,如下所示:


ptr[0] = 1; // 存储1到数组的第一个位置

在释放一个动态分配的数组时,必须使用delete[]运算符而不是delete运算符:


delete[] ptr; // 释放分配的数组内存

此外,new 还可以用来分配自定义类型的对象。例如,如果有一个类MyClass,想创建一个新的MyClass实例,则可以使用以下语法:


MyClass* ptr = new MyClass();

在使用 new 和 delete 时还要注意一些问题,比如 new 可能抛出 std::bad_alloc 异常。以及如果没有使用 delete 或者 delete[] 释放动态分配的内存,可能会导致内存泄漏。

总之,new运算符是C++中动态内存分配的一种非常强大的方式。正确使用new和delete可以更灵活地分配内存并更好地管理代码。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复