CPP*_*der 1 c++ arrays memory-management
假设我已经声明了一个字符数组并从用户那里获取一个字符串,如下所示:
char s[100000];
std::cin>>s;
Run Code Online (Sandbox Code Playgroud)
现在说用户输入了字符串"Program".我的角色数组如下:
'P''r''o''g''r''a''m''\0'......(99992 remaining indices with no/junk values)
Run Code Online (Sandbox Code Playgroud)
有没有办法释放占用那些99992指数的空间?类似地,如果我有一个大小为100000的整数数组,并且我在运行时只使用前10个索引,那么有没有办法在我的程序运行期间调整我的数组大小.我知道我们可以为此目的使用向量但是有可能以某种方式使用数组吗?对于整数数组,我知道我们可以动态声明数组,然后按照我们的要求声明大小,但是说我有10个整数的数组,如下所示:
1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)
现在,我想只使用前9个索引和wnat来删除第10个索引.换句话说,随着动态分配,数组也可以动态删除吗?
编辑:我知道有可能使用STL,但我想知道我们是否可以在数组中做同样的事情?
没有.
如果您使用固定大小定义了数组,则无法在运行时释放其中一部分数组.使用动态分配的某种类型的数组 - 可能是一个string或vector<int>分别用于两个示例数组,尽管它vector<char>可能也适合您.