guo2guo2111
2015-07-06 11:53
采纳率: 100%
浏览 1.5k

关于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)来复制内容

    打赏 评论

相关推荐 更多相似问题