C++:new

还记得之前帖子中提到的malloc吗,new和malloc都可以申请和释放空间。

一般使用new有三种格式:

1.指针变量名=new+类型;

2.指针变量名=new+类型(赋予一个初始值);

3.指针变量名=new+类型[内存单元个数];

释放空间需要用到delete。

例子:

cpp 复制代码
#include<iostream>
using namespace std;


int main()
{
	int* p=new int(100);
	cout << *p << endl;//100

	delete p;

	char* str = new char[4];
	str[0] = 'a';
	str[1] = 'b';
	str[2] = 'c';
	str[3] = '\0';
	cout << str << endl;

	delete[] str;//释放数组的格式



	return 0;
}

在C++中用malloc要加强制类型转换,如:

cpp 复制代码
#include<iostream>
using namespace std;


int main()
{
	int* p = (int*)malloc(4);
	*p = 100;
	cout << *p << endl;

	free(p);

	char* str = (char*)malloc(4);
	str[0] = 'a';
	str[1] = 'b';
	str[2] = 'c';
	str[3] = '\0';
	cout << str << endl;

	free(str);



	return 0;
}

注意:

new和malloc可以混用,但在C++中我们常用new。

之后的帖子中会总结二者的区别。

相关推荐
Aderversa26 分钟前
C++开源协程库async_simple有栈协程源码分析
c++·协程
uyeonashi31 分钟前
【QT】窗口详解
开发语言·c++·qt·学习
Hello eveybody2 小时前
C++介绍整数二分与实数二分
开发语言·数据结构·c++·算法
空白木各2 小时前
evo工具
c++
编码小笨猪2 小时前
浅谈Linux中一次系统调用的执行过程
linux·服务器·c++
jmlinux3 小时前
从 C 语言计算器到串口屏应用
c语言·开发语言
Mallow Flowers3 小时前
Python训练营-Day31-文件的拆分和使用
开发语言·人工智能·python·算法·机器学习
云边小网安4 小时前
java集合篇(六) ---- ListIterator 接口
java·开发语言·青少年编程·java集合
不被定义的程序猿4 小时前
Golang 在 Linux 平台上的并发控制
开发语言·后端·golang
陈旭金-小金子5 小时前
发现 Kotlin MultiPlatform 的一点小变化
android·开发语言·kotlin