有什么方法可以释放元素到数组末尾?
例如,从6号释放到最后,如下所示:
char *str = "Hello, World\n";
char *ptr = str+6;
free(ptr);
给出“分段错误”!
有没有办法做到这一点?
最佳答案
为什么发生分段错误
因为您正在尝试释放尚未使用malloc
分配的内存。如果使用malloc
进行了分配,则它将无法正常工作,因为您没有指向内存的开头。
有没有办法做到这一点?
是否有办法获取尚未使用malloc
分配的内存并将其添加到malloc
可用的可用内存池中?不,那没有道理。尤其是当相关内存为只读时。
关于c - 为什么会发生段错误,我们如何避免这种情况?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24960234/