指针位置改变 怎么释放内存
比如说,给一个指针申请了一块动态内存,但是这个指针在后续的操作中移动了位置,假设移动的位置不可知
char *src = (char *)malloc(80);
strcpy(src,"abcdefghijhkl");
src = src+n;
我知道这种情况下执行的free(src)的时候并不能释放内存,那么应该怎么释放?
[解决办法]
移动之前保存一个副本:
char *src = (char *)malloc(80);
char *p = src;
strcpy(src,"abcdefghijhkl");
src = src+n;
....
src = p;
free(src);