字符* 的值在' __android_log_write'后更改
value of char* changed after ' __android_log_write'
我想多次调用MD5函数并返回带有打击代码的结果。
char *finalenc= (char*)malloc(32);
finalenc = "";
for (int i = 0; i < md5repeatTime; ++i) {
if (i == 0)
finalenc = md5(env, chtime, 0);
else {
finalenc = md5(env, finalenc, 0);
}
}
__android_log_write(ANDROID_LOG_ERROR, "releasetimefortest", finalenc);
我有两个问题:
- 当我记录结果时,"finalenc"值丢失并更改为未知值。
- 当我多次调用这部分代码时,我收到此错误:
libc:致命信号 6 (SIGABRT( 在 0x000006df
改 性:
char *md5(JNIEnv *env, char *cstr, int mode) {
MD5_CTX context = {0};
MD5Init(&context);
MD5Update(&context, (unsigned char *) cstr, strlen(cstr));
unsigned char dest[16] = {0};
MD5Final(dest, &context);
char mdString[33];
int i;
for (i = 0; i < 16; i++) {
sprintf(&mdString[i*2], "%02x", (unsigned int)dest[i]);
}
return mdString;
}
最后我找到了解决方案:MD5功能:
char *md5(JNIEnv *env, char *cstr,char mdString[65]) {
MD5_CTX context = {0};
MD5Init(&context);
MD5Update(&context, (unsigned char *) cstr, strlen(cstr));
unsigned char dest[16] = {0};
MD5Final(dest, &context);
// (*env)->ReleaseStringUTFChars(env, data, cstr);
// char mdString[33];
int i;
for (i = 0; i < 16; i++) {
sprintf(&mdString[i*2], "%02x", (unsigned int)dest[i]);
}
return mdString;
}
并调用该函数
char mdString[65]={0};
if (md5enable == 1) {
for (int i = 0; i < md5repeatTime; ++i) {
if (i == 0) {
md5(env, chtime, mdString);
}
else {
md5(env, mdString,mdString);
}
}
}
相关文章:
- 如何用数字处理log(0)
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- 安装opencv失败-粘贴CMakeError.log的内容
- 当客户端在 write() 期间终止连接时,由对等套接字错误重置连接
- Qt 写入 xml: QIODevice::write (QFile, "D:/logs.xml" ): 设备未打开
- write() 和 read() 中几乎没有混淆
- OpenCV-contrib/Python/Windows:Tracker.write() 在 matrix_wrap.
- 保持排序的数据结构,允许log N插入时间,并且可以返回我在log N中查找的元素的索引
- asio::read() 需要很长时间,使用 asio::write 没有问题
- boost日志文件无法创建sample.log文件
- 封送指向结构异常"cannot Read or Write protected memory"的指针数组的指针数组
- Boost::log只在debian中崩溃
- BLE gattServer.write()重载函数
- C++ write(); 反向写入给定的字节值
- 使用 QFile::write 的正确方法?
- 如何检查 2 个 c++ 数组在 O(1) 或 O(log n) 时间复杂度中是否相同(所有元素都相同,顺序很重要)?
- 设置自定义收集器时不会提升::log尊重关键字::max_size吗?
- C++ UDP 广播使用 ::write
- 我仍然收到此错误未定义的引用:boost::log::v2_mt_posix::trivial::logger::get
- 是否可以从从 QPrintPreviewDialog 调用的 QPrinter 对话框中删除"Write to PDF"?