malloc e calloc são duas funções de gerenciamento de memória na linguagem de programação "C". Programas não precisa reservar áreas de memória , porque isso geralmente é a responsabilidade do sistema operacional. Estas duas funções não são usados com freqüência e são necessários apenas para aqueles programas que não podem confiar em processos de gerenciamento de memória padrão. "C" Linguagem de Programação
"C" tem sido um idioma preferido para a programação e manipulação de arquivos de rede. É uma língua difícil de aprender, porque suas palavras-chave são muito mais codificado e menos como linguagem real do que outras linguagens como COBOL, Pascal ou Java. "C" está intimamente ligada ao sistema operacional Unix. Na verdade, o Unix é escrito em "C" Embora Unix tem a sua própria linguagem de script , "C" é o idioma predominante para serviços baseados em Unix programação. Como a alocação de memória está intimamente relacionado com os sistemas operacionais , malloc e calloc é mais provável de ser encontrado em serviços de baixo nível programado em "C" do que no cliente voltado para aplicações de alto nível.
Gerenciamento de Memória
um programa de "C" é uma lista de instruções legíveis por humanos que não podem ser executados em um computador. O programa tem de ser compilado , o que gera uma cópia do programa em código legível por máquina . Os sistemas operacionais geralmente disponibilizar locais de memória para as variáveis e instruções no programa no momento em que o programa é compilado . As variáveis são um espaço de armazenamento temporário para os dados durante o curso da execução do programa . Malloc e calloc fornecer um método para retardar a alocação de endereços de memória até que o programa é executado. Isso é chamado de gerenciamento de memória dinâmica.
Malloc e calloc
Ambos malloc e calloc alocar um espaço na memória heap para o programa. Cada função retorna um ponteiro para o primeiro endereço de memória alocada e todos os outros blocos de memória devem ser contíguos. Se o sistema não tiver a memória disponível , ambas as funções retornar nulo . Ambos memória reserva para funções ou inteiro ou dados de caracteres. Em cada caso , o tamanho do bloco de memória deve ser um múltiplo do tamanho exigido para o tipo de dados . Portanto, é prática comum usar o sizeof () função dentro da lista de parâmetros para tanto malloc e calloc para o argumento tamanho do bloco para garantir que o tamanho da memória requerida é um múltiplo do tipo de dados pretendido.
Comparação
Malloc tem um argumento e aloca um bloco do tamanho solicitado. Calloc leva dois argumentos , os quais são o número de blocos necessários e o tamanho requerido para cada bloco . Por esta razão , malloc é julgado como sendo úteis para uma única variável , e calloc é mais adequado para atribuição de memória para uma disposição - que contém vários elementos . Malloc não inicializa a área de memória solicitado , enquanto a zero calloc preenche.