如果輸入常量字符串以某種方式被修改(導致C編譯器警告),處理它的最好方法是什麼 - 將其轉換爲新變量,然後使用它或複製它並使用它,然後釋放它。或者還有其他方式來處理這種情況。請建議。任何幫助,將不勝感激。類型轉換字符串和strdup
//鑄字
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;
上述分配是否有效?
這取決於你需要修改一個const字符串的原因的細節。 –