Perguntas com a marcação «free»

17
O que REALMENTE acontece quando você não libera após o malloc?
Isso tem sido algo que me incomoda há muito tempo. Todos nós somos ensinados na escola (pelo menos eu fui) que você DEVE libertar todos os indicadores que estão alocados. Estou um pouco curioso, porém, sobre o custo real de não liberar memória. Em alguns casos óbvios, como quando mallocé …
538 c  malloc  free 

11
Como o free sabe quanto liberar?
Na programação C, você pode transmitir qualquer tipo de ponteiro que desejar como argumento para liberar, como ele sabe o tamanho da memória alocada para liberar? Sempre que passo um ponteiro para alguma função, também preciso passar o tamanho (ou seja, uma matriz de 10 elementos precisa receber 10 como …
385 c  size  pointers  free 

13
Como malloc () e free () funcionam?
Eu quero saber como malloce freetrabalhar. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } Ficaria muito grato se a resposta …


10
Free (ptr) onde ptr é NULL corrompido memória?
Teoricamente posso dizer que free(ptr); free(ptr); é uma corrupção de memória, pois estamos liberando a memória que já foi liberada. Mas e se free(ptr); ptr=NULL; free(ptr); Como o SO vai se comportar de maneira indefinida, não consigo fazer uma análise teórica real sobre o que está acontecendo. O que quer …


3
Por que anular o valor de retorno do free?
Estou lendo um livro ( Programming with POSIX Threads by Butenhof, 1997) que usa C e me deparei com a seguinte linha: (void)free(data); Aqui, dataé apenas um ponteiro para uma estrutura alocada, data = malloc(sizeof(my_struct_t)); Por que o resultado de freeser lançado para void? Do meu entendimento de C, isso …
82 c  casting  free  void  legacy-code 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.