当前位置:  开发笔记 > 编程语言 > 正文

如何在C++中创建一个数组而不是堆栈?

如何解决《如何在C++中创建一个数组而不是堆栈?》经验,为你挑选了2个好方法。

我有一个非常大的数组,其长度必须为262144个元素(未来可能会大得多).我试过在堆栈上分配数组,如下所示:

#define SIZE 262144
int myArray[SIZE];

但是,当我尝试添加元素超过某个点时,当我尝试访问它们时,值会有所不同.我知道这是因为堆栈上只有一个有限的内存,而不是具有更多内存的堆.

我没有太多运气(不编译)尝试了以下内容:

#define SIZE 262144
int *myArray[SIZE] = new int[SIZE];

然后我考虑使用malloc,但我想知道是否有更多C++这样做的方式......

#define SIZE 262144
int *myArray = (int*)malloc(sizeof(int) * SIZE);

我应该一起去malloc吗?



1> Reed Copsey..:

你会想要使用像这样的新东西:

int *myArray = new int[SIZE];

我还会提到另一面,以防万一......

由于您从堆栈转换到堆,您还需要在完成后清理此内存.在堆栈上,内存将自动清理,但在堆上,您需要删除它,并且由于它是一个数组,您应该使用:

delete [] myArray;



2> Brian Neal..:

更多C++的做法是使用向量.然后,您不必担心在完成后删除内存; 矢量会为你做.

#include 

std::vector v(262144);

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有