При использовании функции free () в aix (статическая область free ()) - PullRequest
0 голосов
/ 20 сентября 2019

Я плохо разбираюсь в английском, поэтому, пожалуйста, поймите меня.

Если вы посмотрите на код ниже, вы можете освободить () статическую область, но она не умерла.В 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
Без штампа.!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...