guo2guo2111 2015-07-06 11:53 采纳率: 100%
浏览 1504
已采纳

关于xcode的一个问题,有关内存释放的问题

char arr[] = "The secret of success is constancy to purpose";
long a = strlen(arr);

char *p = malloc(a +1);
p = arr;
*(p+a) = '\0';
printf("%s",p);
free(p);
p = NULL;

    没有下面的内存释放语句是没有问题的,加上之后就出现了问题
  • 写回答

1条回答

  • oyljerry 2015-07-06 12:06
    关注

    p = arr;
    你这样把p的地址修改了,这样后面free的时候就会有问题

    你应该用strcpy(p, arr)来复制内容

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信