美文网首页
在ARC机制下直接操作内存崩溃

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

作者: 天涯笑笑生 | 来源:发表于2017-07-05 13:48 被阅读0次
    • 问题:
    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]);
        }
    
    

    相关文章

      网友评论

          本文标题:在ARC机制下直接操作内存崩溃

          本文链接:https://www.haomeiwen.com/subject/jkhqhxtx.html