/* * Alterando o tamanho do segmento de dados */ #include #include #include #include #include #include char str_dados[10]; int main() { char str_pilha[10], *aux, *topo; int pagesize = getpagesize(); int *s1, *s2, *s3, *s4, *s5, *s6; printf("Tamanho em bytes de um endereço: %d\n", sizeof(char*)); printf("Tamanho em bytes de uma página: %d\n", pagesize); printf("str_pilha = %p\n", str_pilha); printf("main = %p\n", main); printf("str_dados = %p\n", str_dados); topo = sbrk(0); printf("Topo da área de dados = %p\n", topo); s1 = (int *) malloc (sizeof(int) * 100); printf ("s1: %p\n", (void*) s1); topo = sbrk(0); printf("Topo da área de dados = %p\n", topo); if (sbrk(pagesize/2) == -1) printf("Não foi possível alterar o segmento de dados\n"); topo = sbrk(0); printf("Topo da área de dados = %p\n", topo); topo += pagesize/2 -1; *topo = 1; return 0; }