在ARC机制下直接操作内存崩溃

  • 问题:
char *buf = "EC|RN0851|PW0851|LC8,0|";
char *h = "hhh";

 strcat(h, buf);
strcpy(h, buf);

在ARC机制下使用ARC管理机制外的函数操作内存,程序直接崩溃,物错误提示

  • 解决方案:
char *c = (char *) malloc(strlen(h) + strlen(buf));

PS:

    //ARC机制下操作内存需要申请
    char *str = "EC|RN0851|PW0851|LC8,0|";
    char pried = 0x02;
    char end = 0x03;
    char check = 0x01;
    char *buff = (char *) malloc(3 + strlen(str));
    
    strncpy(buff, &pried,1);

    strncat(buff, str, strlen(str));

    strncat(buff, &end,1);

    strncat(buff, &check,1);

    NSLog(@"length:%ld",strlen(&pried));//输出为4,所以单字符时可以写成数组等,或者如上
    
    for (int i = 0; i < strlen(buff); i++) {
        printf("-%x", buff[i]);
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 史上最全的iOS面试题及答案 迷途的羔羊--专为路痴量身打造的品牌。史上最精准的定位。想迷路都难!闪电更新中......
    南虞阅读 1,524评论 0 8
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,002评论 0 7
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,753评论 0 4
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,358评论 0 6
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,393评论 0 35