更改命令行参数

Sha*_*adi 1 c command-line

我正在写一个C程序.它从commandLine获取它的参数.我想更改代码中的commandLine参数.由于它们被定义为"const char*",我不能使用"strcpy","memcpy"来改变它们......而且,你知道,我不能只将它们的类型从"const char*"改为"char*" ".有没有办法改变它们?

非常感谢你提前.

最好的问候,沙迪.

Pot*_*ter 7

据C99§5.1.2.2.1/ 1,对于签名main

int main(int argc, char *argv[]) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

所以你允许删除const.只是不要通过strcpy比原始参数更长的字符串导致缓冲区溢出,或者尝试安装比最初传递的更多的参数.

其他人基本上都是正确的,你应该创建一个副本.

  • 而且可能比你从参数类型推断正是甚至更多,标准明确表示:"这些参数argc和argv和琴弦指向argv数组应通过程序修改......" (3认同)