【发布时间】:2010-12-14 20:12:47
【问题描述】:
我就是这样做的:
int argc = 9;
char* argv[argc];
argv[0] = "c:/prog.exe";
但我注意到它已被弃用。有什么更好的方法?
【问题讨论】:
-
这实际上不是有效的 c++。使用变量来声明堆栈上数组的大小是较新的 C 标准的一部分,该标准尚未与最新的 C++ 标准集成。你确定你使用了正确的标签吗?
-
@Noah Roberts:这可能是编译器实现的语言扩展(这可以解释为什么不推荐使用它)。
-
就标准而言不是“集成的”。但是主要的编译器都支持这个,所以我会很顺利地处理这个(顺便说一句,这不是 OP 的问题)。
-
警告与 VLA 完全无关,请参阅我的帖子和 Vlad 的。
-
@In silico - 不,不推荐使用的是非常量字符串文字。在 03 中被标准弃用。
标签: c++ c constants string-literals