从字符串文字转换为字符*

K17*_*K17 2 c c++ c++11

我试图在一些公开的线性代数代码中使交流功能起作用.

公开的原型是......

int ilaenv_(int *, char *, char *, int *, int *,int *, int *);
Run Code Online (Sandbox Code Playgroud)

公开的代码有函数调用...

nb = ilaenv_(&c__1, "DGEQRF", " ", m, n, &c_n1, &c_n1); 
Run Code Online (Sandbox Code Playgroud)

其中m,n,c_1和c_n1是整数,

错误消息是.

C++ 11 does not allow conversation from string literal to char *.
Run Code Online (Sandbox Code Playgroud)

我没有创建代码,但是从LAPACK站点下载了代码.我不愿意对可能有效的公开代码进行太多更改,以免引入错误.但是,此错误出现在我正在处理的程序中的许多函数中.

我该如何解决这个问题?

Ark*_*kku 6

为安全起见,您可以创建char初始化为相同值的数组,例如:

char dgeqrf[] = "DGEQRF";
char space[] = " ";
Run Code Online (Sandbox Code Playgroud)

或者你可以查看函数的源代码; 如果它实际上没有修改那些数组的内容,你可以将参数更改为const char *.


sen*_*fen 5

您的函数使用“ char *”,而不是“ const char *”。字符串文字只能分配给“ const char *”。