亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何擺脫GCC中從字符串常量到'char *''警告的棄用轉換?

如何擺脫GCC中從字符串常量到'char *''警告的棄用轉換?

C++
www說 2019-08-06 13:23:44
如何擺脫GCC中從字符串常量到'char *''警告的棄用轉換?所以我正在開發一個非常大的代碼庫,最近升級到gcc 4.3,它現在觸發了這個警告:警告:不推薦將字符串常量轉換為'char *'顯然,解決這個問題的正確方法是找到每個聲明char *s = "constant string";或函數調用如:void foo(char *s);foo("constant string");并使他們成為const char指針。但是,這意味著觸及564個文件,最小,這不是我希望在此時執行的任務?,F在的問題是我正在運行-werror,所以我需要一些方法來扼殺這些警告。我怎樣才能做到這一點?
查看完整描述

3 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

我相信傳遞-Wno-write-strings給gcc會壓制這個警告。


查看完整回答
反對 回復 2019-08-06
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

傳遞字符串文字的任何函數"I am a string literal"都應該char const *用作類型而不是char*。

如果你要解決問題,請正確解決問題。

說明:

您不能使用字符串文字初始化將要修改的字符串,因為它們是類型const char*。虛擲常量性以后修改它們是不確定的行為,所以你要復制你的const char*字符串char通過char到動態分配的char*字符串,以對其進行修改。

例:

#include <iostream>void print(char* ch);void print(const char* ch) {
    std::cout<<ch;}int main() {
    print("Hello");
    return 0;}


查看完整回答
反對 回復 2019-08-06
  • 3 回答
  • 0 關注
  • 982 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號