首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指针位置改变 如何释放内存

2012-02-19 
指针位置改变 怎么释放内存比如说,给一个指针申请了一块动态内存,但是这个指针在后续的操作中移动了位置,

指针位置改变 怎么释放内存
比如说,给一个指针申请了一块动态内存,但是这个指针在后续的操作中移动了位置,假设移动的位置不可知
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);

热点排行