Articles of malloc

memory alocada dinamicamente após a finalização do programa

Quando um programa C / C ++ contendo a memory alocada dinamicamente (usando malloc / new) sem chamadas free / delete é finalizado, o que acontece com essa memory alocada dinamicamente? O sistema operacional recupera a memory ou essa memory se torna inacessível a outros programas?

Por que recebo um aviso toda vez que uso o malloc?

Se eu usar malloc no meu código: int *x = malloc(sizeof(int)); Eu recebo este aviso do gcc : new.c:7: warning: implicit declaration of function ‘malloc’ new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’

C: Liberando corretamente a memory de uma multidimensional array

Digamos que você tenha o seguinte código ANSI C que inicializa um array multidimensional: int main() { int i, m = 5, n = 20; int **a = malloc(m * sizeof(int *)); //Initialize the arrays for (i = 0; i < m; i++) { a[i]=malloc(n * sizeof(int)); } //…do something with arrays //How do I […]

Complexidade de tempo de alocação de memory

Qual é a complexidade temporal da alocação dinâmica de memory usando new, malloc, etc.? Eu sei muito pouco sobre como os alocadores de memory são implementados, mas presumo que a resposta seja que isso depende da implementação. Portanto, responda por alguns dos casos / implementações mais comuns. Edit: Lembro-me vagamente de ouvir que a alocação […]

O que é um heap de memory?

O que é um heap de memory?

O malloc cria preguiçosamente as páginas de apoio para uma alocação no Linux (e outras plataformas)?

No Linux, se eu fosse ao malloc(1024 * 1024 * 1024) , o que o malloc realmente faz? Tenho certeza de que ele atribui um endereço virtual à alocação (andando pela lista livre e criando um novo mapeamento, se necessário), mas ele realmente cria um valor de 1 GB de páginas de troca? Ou ele […]

Escrevendo para ponteiro fora dos limites após malloc () não causando erro

quando eu tento o código abaixo funciona bem. Estou esquecendo de algo? main() { int *p; p=malloc(sizeof(int)); printf(“size of p=%d\n”,sizeof(p)); p[500]=999999; printf(“p[0]=%d”,p[500]); return 0; } Eu tentei com malloc (0 * sizeof (int)) ou qualquer coisa, mas funciona muito bem. O programa só falha quando não uso malloc. Então, mesmo que eu aloque 0 de […]

Qual é a diferença entre um VLA e alocação de memory dinâmica via malloc?

Eu estava curioso com isso: Qual é a diferença entre: const int MAX_BUF = 1000; char* Buffer = malloc(MAX_BUF); e: char Buffer[MAX_BUF];

Por que eu recebo uma falha de declaração do C malloc?

Estou implementando um algoritmo polinomial de divisão e conquista para que eu possa compará-lo com uma implementação do OpenCL, mas não consigo fazer com que o malloc funcione. Quando executo o programa, ele aloca um monte de coisas, verifica algumas coisas e envia o size/2 para o algoritmo. Então, quando eu bato na linha malloc […]

Declaração implícita incompatível da function incorporada ‘malloc’

Estou recebendo este erro: aviso: declaração implícita incompatível da function incorporada ‘malloc‘ Eu estou tentando fazer isso: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Apenas para a referência, a estrutura usada é: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Não vejo nada de errado com o que fiz. Estou apenas criando um […]