Como posso obter o tamanho de um bloco de memória alocado usando malloc ()? [duplicado]
Duplicatas Possíveis:
Como posso obter o tamanho de uma matriz de um ponteiro em C?
Existe alguma maneira de determinar o tamanho de um array C ++ programaticamente? E se não, por quê?
Eu recebo um ponteiro para um pedaço de memória alocada fora de uma função de estilo C. Agora, seria realmente interessante para fins de depuração saber o tamanho do bloco de memória alocado que esse ponteiro aponta.
Existe algo mais elegante do que provocar uma exceção correndo cegamente por seus limites?
Obrigado antecipadamente, Andreas
EDITAR:Eu uso o VC ++ 2005 no Windows e o GCC 4.3 no Linux
EDIT2:eu tenho_msize
sob VC ++ 2005 Infelizmente isso resulta em uma exceção no modo de depuração ....
Bem. Eu tentei da maneira que descrevi acima, com exceção, e funciona. Pelo menos enquanto eu estou depurando e assegurando que imediatamente após a chamada para a biblioteca sair eu ultrapassei os limites do buffer. Funciona como um encanto.
Simplesmente não é elegante e de forma alguma utilizável no código de produção.