在c中释放指向动态数组的指针
发布时间:2020-12-16 10:52:41 所属栏目:百科 来源:网络整理
导读:我使用malloc在c中创建了一个动态数组. 例如.: myCharArray = (char *) malloc(16); 现在,如果我创建一个这样的函数并将myCharArray传递给它: reset(char * myCharArrayp){ free(myCharArrayp);} 这会工作,还是我会以某种方式只释放指针(myCharArrayp)的副
我使用malloc在c中创建了一个动态数组.
例如.: myCharArray = (char *) malloc(16); 现在,如果我创建一个这样的函数并将myCharArray传递给它: reset(char * myCharArrayp) { free(myCharArrayp); } 这会工作,还是我会以某种方式只释放指针(myCharArrayp)的副本而不是实际的myCharArray? 解决方法
这将很好,并释放你所期望的记忆.
我考虑写一个像这样的函数 void reset(char** myPointer) { if (myPointer) { free(*myPointer); *myPointer = NULL; } } 这样在释放后指针被设置为NULL.重用以前释放的指针是常见的错误来源. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |