一个奇怪的指针问题,指针遍历如何结束?

本文探讨了一段涉及const char *赋值给char *的代码,并在项目实践中遇到的问题。代码示例中,source_字符串含有0102030405060708,key字符串为1111111111111111,但未给出具体输出结果。文章旨在分析指针遍历如何正确终止。
摘要由CSDN通过智能技术生成

首先引入一段代码,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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值