有没有办法将元素释放到数组的末尾?
例如,从第6个到第结束时释放为:
char *str = "Hello, World\n";
char *ptr = str+6;
free(ptr);
给出“分段错误”!
有没有办法实现呢?
答案 0 :(得分:5)
为什么会发生分段错误
因为您正在尝试释放尚未使用malloc
分配的内存。如果它已被malloc
分配,那么它将无效,因为您没有指向内存的开头。
有没有办法实现这一目标?
是否有办法获取尚未使用malloc
分配的内存并将其添加到malloc
可用的可用内存池中?不,这没有任何意义。特别是因为有问题的内存是只读的。