我正在写一个C程序.它从commandLine获取它的参数.我想更改代码中的commandLine参数.由于它们被定义为"const char*",我不能使用"strcpy","memcpy"来改变它们......而且,你知道,我不能只将它们的类型从"const char*"改为"char*" ".有没有办法改变它们?
非常感谢你提前.
最好的问候,沙迪.
据C99§5.1.2.2.1/ 1,对于签名main是
int main(int argc, char *argv[]) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
所以你被允许删除const.只是不要通过strcpy比原始参数更长的字符串导致缓冲区溢出,或者尝试安装比最初传递的更多的参数.
其他人基本上都是正确的,你应该创建一个副本.