Converter um ponteiro para um int
Estou escrevendo minhas próprias funções paramalloc
efree
em C para uma tarefa. Eu preciso tirar proveito do Csbrk()
função de invólucro. Pelo que eu entendosbrk()
incrementa o espaço de dados do programa pelo número de bytes passados como argumento e aponta para o local da quebra do programa.
Se eu tiver o seguinte trecho de código:
#define BLOCK_SIZE 20
int x;
x = (int)sbrk(BLOCK_SIZE + 4);
Eu recebo o erro do compiladorwarning: cast from pointer to integer of different size
. Por que é isso e existe mesmo assim, posso transmitir o endereço indicado porsbrk()
para umint
?