int * a = new int [)与int * a = new int []之间的差异; [重复]

问题描述 投票:-1回答:2

数组声明之间有什么区别

int *a=new int(10);

AND

int *a=new int[10];

有什么限制,哪个更好??由于两部作品似乎是相同的.....

c++ coding-style c++14
2个回答
4
投票

第一个分配一个单个整数,其值为10。第二个方法分配一个包含未初始化值的10个整数的数组。

第一个需要由delete释放,第二个需要delete[]

但是,在现代C ++中,很少应该使用手动内存管理at all。首选使用标准容器类和/或智能指针。


0
投票

a = new int(10);

分配1个整数并将其值设置为10。

a = new int[10];

创建10个整数并调用默认构造函数(尽管对于具有琐碎默认构造函数的原始类型(例如int,它可能会忽略它)。]

此外,您还需要以不同的方式删除它们deletedelete[]

© www.soinside.com 2019 - 2024. All rights reserved.