C++数组创建及初始化

一、一维数组

1.申请Heap Memory(malloc/free)

int* Arr = (int*)malloc(ArrSize * sizeof(int));	// 申请堆内存
memset(Arr, 0, ArrSize * sizeof(int));			
free(Arr);										

2.申请Stack Memory(new/delete)

new/delete 会调用构造函数/析构函数进行对象初始化与销毁

int* Arr = new int[ArrSize];			// 仅在自由存储区中申请内存,不初始化
int* Arr = new int[ArrSize]();			// 初始化数组全为 0
int* Arr = new int[5]{ 1,2,3,4,5 };		// 初始化数组为 1,2,3,4,5(VS2015支持)
int* Arr = new int[5]{ 1 };				// 初始化数组为 1,0,0,0,0
delete[] Arr;								

二、二维数组

1.申请Heap Memory(malloc/free)

int **Arr = (int**)malloc(ArrRow * sizeof(int *));		// 先行
for (int i = 0; i < ArrRow; i++)
{
    Arr[i] = (int*)malloc(ArrCol * sizeof(int));		// 后列
    memset(Arr[i], 0, ArrCol * sizeof(int));		
}

for (int i = 0; i < 3; i++)								
{
	free(Arr[i]);
}
free(Arr);									

2.申请Stack Memory(new/delete)

int **Arr = new int *[ArrRow];
for (int i = 0; i < ArrRow; i++)
{
	Arr[i] = new int[ArrCol]();							
}

for(i = 0; i < ArrRow; i++)  							
{  
    delete[] Arr[i];  
}   
delete[] Arr;  

Reference:


https://blog.csdn.net/yuqinjh/article/details/79095787

https://blog.csdn.net/Librarvl/article/details/90147388

https://www.cnblogs.com/ywliao/articles/8116622.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值