有什么方法可以释放元素到数组末尾?

例如,从6号释放到最后,如下所示:



char *str = "Hello, World\n";
char *ptr = str+6;
free(ptr);




给出“分段错误”!

有没有办法做到这一点?

最佳答案

为什么发生分段错误


因为您正在尝试释放尚未使用malloc分配的内存。如果使用malloc进行了分配,则它将无法正常工作,因为您没有指向内存的开头。


  有没有办法做到这一点?


是否有办法获取尚未使用malloc分配的内存并将其添加到malloc可用的可用内存池中?不,那没有道理。尤其是当相关内存为只读时。

关于c - 为什么会发生段错误,我们如何避免这种情况?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24960234/

10-11 23:03
查看更多