来QQ群 :257887726
讨论测试技术的真谛吧

老师,我在LR中想将一段字符串转化为大写,在没有用malloc函数之前是也是报的这个内存异常错误,我用了malloc函数后也报错了,麻烦帮忙看下原因


下图中的用了函数malloc分配了内存空间,还是无法将字符串转化为大写,报内存异常

attachments-2018-02-gJN0hx9n5a755b8b015bc.

请先 登录 后评论

2 个回答

鲁德-杨龙

attachments-2018-02-WubL92335a75b6b338e2f.png

1、文字常量区中的内容,是不能修改的。

        char *str = "abcdefghijklmn";

      这里你对文字常量区内容做修改,所以内存报错。

2、想要修改内容,就在堆中申请一块内存,这里面的内容可修改。

      所以用strcpy(ptr,str),讲str字符串内容copy到申请的内存中,然后再进行大写转换。

请先 登录 后评论
ckl - 测试架构师
擅长:性能测试

楼上的回答已经很详细了。注意下运行时内存的变化

请先 登录 后评论
  • 2 关注
  • 0 收藏,78 浏览
  • 鲁德-传奇 提出于 2018-02-03 14:56

相似问题

如需发布职位,请登录

老师,我在LR中想将一段字符串转化为大写,在没有用malloc函数之前是也是报的这个内存异常错误,我用了malloc函数后也报错了,麻烦帮忙看下原因


下图中的用了函数malloc分配了内存空间,还是无法将字符串转化为大写,报内存异常

attachments-2018-02-gJN0hx9n5a755b8b015bc.

请先 登录 后评论

2 个回答

鲁德-杨龙

attachments-2018-02-WubL92335a75b6b338e2f.png

1、文字常量区中的内容,是不能修改的。

        char *str = "abcdefghijklmn";

      这里你对文字常量区内容做修改,所以内存报错。

2、想要修改内容,就在堆中申请一块内存,这里面的内容可修改。

      所以用strcpy(ptr,str),讲str字符串内容copy到申请的内存中,然后再进行大写转换。

请先 登录 后评论
ckl - 测试架构师
擅长:性能测试

楼上的回答已经很详细了。注意下运行时内存的变化

请先 登录 后评论
  • 2 关注
  • 0 收藏,78 浏览
  • 鲁德-传奇 提出于 2018-02-03 14:56

相似问题

咨询电话:4008-779-565
CopyRights 上海鲁德企业咨询管理有限公司