美文网首页
在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机制下直接操作内存崩溃

    问题: 在ARC机制下使用ARC管理机制外的函数操作内存,程序直接崩溃,物错误提示 解决方案: PS:

  • iOS开发之Autoreleasepool简介

    Autoreleasepool即自动释放池,是在ARC自动管理内存机制下用来管理程序中开辟的内存的,ARC工程每个...

  • Swift底层探索(四):内存管理

    内存管理 Swift中使用自动引用计数(ARC)机制来追踪和管理内存。 通过 lldb直接查看refCounted...

  • swift内存管理

    Swift使用自动引用计数(ARC)机制来处理内存。通常情况下,Swift内存管理机制会自动管理内存,无须我们考虑...

  • Swift使用自动引用计数

    Swift使用自动引用计数(ARC)机制来处理内存。通常情况下,Swift内存管理机制会自动管理内存,无须我们考虑...

  • 内存管理

    ARC内存管理机制详解理解 iOS 的内存管理

  • iOS strong和copy的区别

    在iOS开发中,几乎每天都会遇到NSString属性的声明, 在ARC内存管理机制下, NSString属性声明有...

  • iOS里的内存泄露

    前言 要讲关于iOS里的内存泄露,那就需要了解一下iOS的内存管理机制。现在基本上我们使用的是ARC机制,在iOS...

  • 关于Core Foundation 对象的一点点探索

    注意:在ARC机制下,Foundation的对象的内存不需要开发管理,Core Foundation则需要开发者自...

  • 内存管理(上)

    内存管理 ARC是Swift默认的内存管理机制,其针对堆上的对象,由编译器自动生成操作引用计数的指令(retain...

网友评论

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

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