如果输入的 const 字符串以某种方式被修改(导致 C 编译器警告),处理它的最佳方法是什么 - 将其类型转换为新变量然后使用它或复制它并使用它然后释放它. 或者有没有其他方法来处理这种情况。请建议。任何帮助,将不胜感激。
//类型转换
const char * s1;
char * s2 = (char *)s1;
//复制和免费
const char * s1;
char * s2 = strdup( s1 );
free(s2)
编辑:它是一个 C 编译器;不是 C++。我不确定在类型转换中,s2 是字符串 s1 的新副本还是指向原始字符串 s1?
感谢您的回答。我还有一个疑问——
const char * c1;
const char * c2 = c1;
上述分配有效吗?