我希望释放我没有指针指向的内存块。在我的程序中,我依次调用malloc
,希望由malloc(1)
,malloc(4)
,malloc(5)
创建的内存是连续的。然后当我只有指向malloc(5)
的指针时,我释放这些内存。但我想不出如何做到这一点;我不能简单地创建一个指向ptr [-5]的地址的指针,然后释放5个字节的内存?如何才能做到这一点?当指针未知时,如何在C中释放内存?
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
malloc(1);
malloc(4);
char* ptr = malloc(5);
free(ptr);
}
为什么你的malloc在那样摆在首位野外? – JBL 2014-09-12 16:12:33
为什么?为什么?如果你想连续的内存,分配一个调用'malloc'并做一些指针算术。这只会导致未定义的行为。 – 2014-09-12 16:12:34
希望内存分配是连续的,似乎相当乐观:) – 2014-09-12 16:14:13