Devolver tamanho da memória alocada em C

2 respostas
matheuslmota

Ei galera me socorram antes que eufique doido.
Eu fazendo um programa em C e estou precisando de alguma função que, dado um ponteiro, ela retorne o tamanho, em bytes, da memória que foi alocada para aquele ponteiro.
Tipo, se eu fizer

char* c = (char*) malloc(100*sizeof(char)); int x = sua_função_aqui(c); printf("%d", x);
Se eu fizer isso eu quero que ela imprima 10 na tela.
Pelo amor de Deus me ajudem, porque eu to pra ficar doido atrás dessa informação.
Abraços.

2 Respostas

L

Não tem como. A solução é guardar o tamanho numa variável e passá-la junto com o array em todos os momentos.

Assim:

int size = 100;
char* c = (char*) malloc(size*sizeof(char));  
int x = sua_função_aqui(c, size);  
printf("%d", x);
matheuslmota

Valeu pela resposta, era o que eu temia.
Abraço :smiley:

Criado 6 de outubro de 2010
Ultima resposta 6 de out. de 2010
Respostas 2
Participantes 2