【发布时间】:2012-11-14 20:11:43
【问题描述】:
我尝试将 unsigned char* 转换为 string 但问题是我从控制台收到此错误:
检测到glibc ** free():下一个大小无效(快速):0x097a1060
最小化代码:
unsigned char * base64= NULL;
base64 = (unsigned char *)"test";
std::string str((const char *)base64, strlen((const char*)base64)) ;
std::cout<<str;
PS:我有一个返回无符号字符*的函数
谢谢。
【问题讨论】:
-
您的代码是否使用返回无符号字符而不是文字“测试”的函数?如果是这样,那么该函数的主体可能就是实际问题所在。
-
顺便说一句,
(unsigned char *)真的应该是(const unsigned char *)。 -
我认为您的函数返回的指针不再有效。
-
当我编译时,我执行时没有错误
-
那是因为它是一个运行时错误。
标签: c++ c type-conversion