当我尝试在以下行中使用atoi(const char*)函数时发生错误...
externalEncryptionRawHolder[u] = atoi(parser.next());
Run Code Online (Sandbox Code Playgroud)
'parser'对象是一个字符串解析器,'next'方法返回一个字符串.我认为错误与'atoi'函数中的字符串不是常数这一事实有关......但我不确定.错误的要点是'无法将字符串转换为const char*'.如何让我的弦不变?任何帮助都将非常感激(顺便说一句,如果你想知道索引'你'是什么,这是在'for'循环内).
你必须调用c_str()该string对象来获得const char*:
externalEncryptionRawHolder[u] = atoi(parser.next().c_str());
Run Code Online (Sandbox Code Playgroud)
但请注意,您不应该这样做:
const char* c = parser.next().c_str();
Run Code Online (Sandbox Code Playgroud)
因为c将指向由string返回者管理的内存parser.next(),它在表达式的末尾被销毁,因此c指向释放的内存.第一个例子是可以的,因为字符串直到atoi返回之后才被销毁.
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |