我试图在一些公开的线性代数代码中使交流功能起作用.
公开的原型是......
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站点下载了代码.我不愿意对可能有效的公开代码进行太多更改,以免引入错误.但是,此错误出现在我正在处理的程序中的许多函数中.
我该如何解决这个问题?
为安全起见,您可以创建char初始化为相同值的数组,例如:
char dgeqrf[] = "DGEQRF";
char space[] = " ";
Run Code Online (Sandbox Code Playgroud)
或者你可以查看函数的源代码; 如果它实际上没有修改那些数组的内容,你可以将参数更改为const char *.