gpt4 book ai didi

c++ - 使用非常量函数参数初始化数组

转载 作者:行者123 更新时间:2023-11-30 02:38:13 24 4
gpt4 key购买 nike

有什么方法可以用非常量整数初始化数组,或者使现有变量成为常量以使其成为有效参数?

bool f( const char s[], const int n )
{
char c[n]; // error: expression must have a constant value
}

最佳答案

不,一般情况下不会。使用 vector<char> c(n)相反。

简化的、几乎正确的解释:如果你不知道什么n在编译时,编译器也没有。所以它不能为数组预留内存。这就是为什么 vector存在。

您可以随时使用 &c[0]如果您在其他地方需要它,则获取指向 char 的指针。

但是it is possible in C99, apparently .感谢@Matt McNabb指出这一点。如果你能等几年,你也许也能用 C++ 编译它。同时,使用 vector .

如果您坚持在 C++ 中有一个“数组”,您将不得不执行如下操作:

char* c = new char[n];

如果您的程序不会永远运行,或者运行得太频繁,您甚至可以保持原样而不用删除。不过,像 Valgrind 这样的工具可能会报错。

关于c++ - 使用非常量函数参数初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31027229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com