Я плохо разбираюсь в английском, поэтому, пожалуйста, поймите меня.
Если вы посмотрите на код ниже, вы можете освободить () статическую область, но она не умерла.В Linux, конечно, они умирают, но не в AIX (тестовая машина 7.1).
Я хотел бы знать, почему.А что за память сделала free ()?
#include <stdio.h>
char testbuf[512];
void main()
{
char *p=NULL;
p = testbuf;
printf("before local:%llx static:%llx\n", p, testbuf);
free(p);
printf("after free local:%llx static:%llx\n", p, testbuf);
printf("No Die.!\n");
}
Компиляция
gcc -maix64 -o 1 1.c
Результат
до локального: 1100014b8 статического: 1100014b8
после свободного локального: 1100014b8 статического: 1100014b8
Без штампа.!