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。

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

相关推荐
码云数智-园园3 分钟前
测试双雄:单元测试与集成测试的深度解析与实战指南
开发语言
故城、8 分钟前
Python进阶
开发语言·python
2401_8914821710 分钟前
C++代码复杂性分析
开发语言·c++·算法
C羊驼11 分钟前
C语言学习笔记(十):操作符
c语言·开发语言·经验分享·笔记·学习
myloveasuka16 分钟前
[Java]单列集合
android·java·开发语言
南梦浅18 分钟前
全过程步骤(从零到高可用企业网络)
开发语言·网络·php
mjhcsp18 分钟前
C++ 梯度下降法(Gradient Descent):数值优化的核心迭代算法
开发语言·c++·算法
ok_hahaha22 分钟前
java从头开始-黑马点评-基础篇
java·开发语言
吴声子夜歌25 分钟前
JavaScript——函数
开发语言·javascript·ecmascript
yunyun3212325 分钟前
跨语言调用C++接口
开发语言·c++·算法