从字符串文字转换为char*
Conversion from string literal to char *
我正试图让c函数在一些公开可用的线性代数代码中工作。
公开的原型是…
int ilaenv_(int *, char *, char *, int *, int *,int *, int *);
公开可用的代码具有函数调用…
nb = ilaenv_(&c__1, "DGEQRF", " ", m, n, &c_n1, &c_n1);
其中m、n、c_1和c_n1是整数,
错误消息为。
C++ 11 does not allow conversation from string literal to char *.
我没有创建代码,而是从LAPACK站点下载了它。我不愿意对公开的代码做太多的更改,因为我害怕引入错误。然而,这个错误出现在我正在处理的程序中的许多函数上
我该如何解决此问题?
您的函数采用"char*",而不是"const char*"。字符串文字只能分配给"const char*"。
为了安全起见,您可以创建初始化为相同值的char
数组,例如:
char dgeqrf[] = "DGEQRF";
char space[] = " ";
或者您可以检查函数的源代码;如果它实际上没有修改这些数组的内容,那么可以将参数更改为const char *
。
很抱歉这么晚了,我刚刚遇到这个问题。你可以试试这个,
string dgeqrf = "DGEQRF";
使用"const-char*"的一个问题是这样的代码,
string formatString;
switch (format)
{
case FORMAT_RGB: formatString = "RGB"; break;
case FORMAT_RGBA: formatString = "RGBA"; break;
case FORMAT_TP10: formatString = "TP10"; break;
default: formatString = "Unsupported"; break;
}
如果您将formatString声明为"constchar*",这将不起作用。
相关文章:
- 将无符号char*转换为std::istream*C++
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 将函数参数"const char*"转换为"std::string_view"是
- C ++如何在使用"tolower"时将char转换为int
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- 为什么从 char 转换为 std::byte 可能是未定义的行为?
- 如何在虚幻引擎4中将char*转换为TCHAR?
- C++:将模板类型 char 转换为 std::string
- strcmp/char* 转换无法按预期工作
- C++中的SQLite char*转换
- 无法从 const char* 转换为 const char *&
- 在 C++ 中将 char 转换为 int,而无需符号位传播
- 如果必须包含西里尔字符,如何将 char* 转换为 std::string?
- 试图使用strCMP时的char转换错误
- 无法从'const char *'转换为'LPCTSTR'
- 将 std::vector<char> 转换为字符* 会导致字符缺陷
- 使用 static_cast 将 char 转换为 int c++
- 如何在 C++(MFC) 中将 char* 转换为 LPCTSTR
- 无法将const char转换为字符串构造字符串