【发布时间】:2014-03-20 08:48:49
【问题描述】:
假设我已经声明了一个字符数组并从用户那里获取一个字符串,如下所示:
char s[100000];
std::cin>>s;
现在假设用户输入了字符串"Program"。我的字符数组如下:
'P''r''o''g''r''a''m''\0'......(99992 remaining indices with no/junk values)
有没有办法释放那些 99992 个索引占用的空间?同样,如果我有一个大小为 100000 的整数数组,并且在运行时只使用前 10 个索引,有没有办法在程序运行时调整数组的大小。我知道我们可以为此目的使用向量,但是使用数组可以以某种方式实现吗?对于整数数组,我知道我们可以动态声明数组,然后根据我们的要求声明大小,但是说我有 10 个整数的数组,如下所示:
1 2 3 4 5 6 7 8 9 10
现在,我只想使用前 9 个索引和 wnat 来删除第 10 个索引。也就是说,除了动态分配,数组也可以动态删除吗?
编辑: 我知道使用 STL 可以做到这一点,但我想知道我们是否可以在数组中做同样的事情?
【问题讨论】:
-
是的,你可以。它叫做
std::string。 -
由于您使用的是
C++,因此请改用vector<int>或string。 -
不!我知道使用 STL 可以做到这一点,但我想知道我们是否可以在数组中做同样的事情?
-
您可能想查看
realloc()。
标签: c++ arrays memory-management