2 guo2guo2111 guo2guo2111 于 2015.07.06 19:53 提问

关于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
oyljerry   Ds   Rxr 2015.07.06 20:06
已采纳

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

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!