/ / Como podemos encontrar o endereço mais alto e mais baixo da pilha - c

Como podemos encontrar o endereço mais alto e mais baixo do heap - c

Alguém pode sugerir, como podemos encontrar o endereço mais alto e mais baixo da pilha usando C?

Respostas:

5 para resposta № 1

Em um sistema Linux, você pode usar sbrk () com um 0argumento para encontrar um fim. Você pode encontrar a outra extremidade compreendendo o segmento do carregador de programas solicitando e examinando etext e edata - consulte a página de manual end (3).

Tudo isso não é padrão e está fora do escopo do próprio C.


2 para resposta № 2

Você pode encerrar suas chamadas para malloc para acompanhar o endereço mais alto e mais baixo visto até agora em cada chamada:

extern unsigned char *lowest, *highest;
unsigned char *tmp = malloc(size);
if (!tmp) return 0;
if (!lowest || tmp < lowest) lowest = tmp;
if (tmp+size > highest) highest = tmp;
return tmp;

1 para resposta № 3

A resposta é que você não pode entrar em C. Se você verificar o padrão do idioma, perceberá que o conceito nunca é mencionado.

O heap é um detalhe de implementação usado em alguns ambientes operacionais (quase todos eles).