如何解决此错误,不推荐将字符串常量转换为' char&#39 ;?

时间:2016-07-08 12:36:07

标签: c

编译之后,它给了我一个错误(ps:我使用devc ++ 5.9.2作为编译器,我的朋友使用dev c ++ 5.1.1,她能够编译)。

  

[警告]已弃用从字符串常量转换为' char *' [-Wwrite串]

void switchSecondSelection(int selection){
int secondSelection;

    switch(selection){
    case 1:
    subMenu("Supplier Info",1);
 //   return secondSelection;
    break;
    case 2:
    subMenu("Customer Info",2);
 //   return secondSelection;
    break;
    case 3:
    subMenu("Medicine Info",3);

//  return secondSelection;
    break;
    case 4:
//      secondSelection = showReport("Report");
   break;
    case 5:
//      secondSelection = showBill("Bill");
    break;
    case 6:
    mainProgram(0);
    break;
    default:
    mainProgram(0);
    break;
}

1 个答案:

答案 0 :(得分:1)

您不会显示subMenu函数,但最有可能需要char *作为其第一个参数。因为它不是const,所以该函数可以自由修改该参数指向的内容。但是对于通常位于内存的只读部分的字符串常量,这不起作用。

更改subMenu的定义,为第一个参数设置const char *

编辑:

查找定义subMenu的位置。它可能看起来像这样:

void subMenu(char *name, int value)

将其更改为:

void subMenu(const char *name, int value)