首先引入一段代码,const char * 如何赋值给char *
const char *expr = "goodidea";
char *buf = new char[strlen(expr)+1];
strcpy(buf, expr);
之前一直搞不懂,为什么strlen(expr) + 1还要加1。发现不加1,或者减1,都不会报错,结果都是一样没报错。
后来在写项目的时候遇到了坑。下面把代码列出来。
const char *source = env->GetStringUTFChars(source_, 0);
const char *key = env->GetStringUTFChars(key_, 0);
char * inHex = (char *) malloc(16 * sizeof(char));
char * keyHex = (char *) malloc(16 * sizeof(char));
strcpy(inHex, source);
strcpy(keyHex, key);
LOGE("inArr=%s", source);
LOGE("keyArr=%s", key);
LOGE("inHex=%s", inHex);
LOGE("keyHes=%s", keyHex);
上面,source_的字符串值为0102030405060708,key的字符串值为1111111111111111。