Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
As desvantagens de ponteiros em C
Na linguagem de programação C, informações endereço da loja ponteiros para posições de memória no computador . Eles também permitem que um programa para permitir que pedir ao computador para a memória (ou " alocar " memória) durante a execução. Porque ponteiros lidar com a memória dinamicamente , eles vêm com certos perigos e desvantagens apesar de sua necessidade. Memória vazamentos

Quando um programa solicita memória através do uso de um ponteiro, esse ponteiro deve continuamente referência a memória alocada . Se a qualquer momento, de uma localização de memória alocada não tem um ponteiro correspondente ( se todos os ponteiros referentes à memória são " apontado " noutro local ) , que a memória não pode ser acedido pelo programa . Esta memória é agora "órfãos ". No entanto, o computador ainda considera essa memória alocada . Como um programa é executado continuamente, e as mesmas linhas de código são executadas milhões de vezes , um erro de alocação de memória por um erro de ponteiro pode preencher rapidamente a memória disponível com os dados inacessíveis , causando um vazamento de memória.
Null ponteiros

ponteiros que não se referem a um endereço na memória são chamados de ponteiros "nulo" . Enquanto eles servem funções úteis na programação (como significando erros de alocação de memória ) , um grande problema ocorre quando " dereferencing " um ponteiro nulo ( dereferencing um ponteiro significa para acessar os dados no local de memória referenciado pelo ponteiro ) . Quando um programa é escrito , há verificações de segurança lidar com a dereferencing de um ponteiro nulo. Na verdade , um grande programa só pode acidentalmente excluir a referência um ponteiro nulo, em algum lugar no fundo de milhões de linhas de código. Quando o código é executado , no entanto, um ponteiro nulo desreferenciado fará com que um programa deixe de funcionar.
Buffer Overflow

A superação de memória ( ou " estouro de buffer " ) ocorre quando a memória alocada por um ponteiro não é grande o suficiente para a entrada que recebe. Por exemplo , se um programa aloca memória para uma palavra sete caracteres e recebe como entrada uma palavra de nove caracteres, os dois personagens extras são armazenadas na memória fora da memória ponteiro de sete caracteres . Os dois personagens extras substituir qualquer coisa contida nele . Não há nenhuma maneira para o programa para saber o que existe nessas duas posições de memória extra. Eles podem conter dados confidenciais do programa (como variáveis ​​do programa ) , ou mesmo para o próprio computador . Isto leva a " corrupção de dados ", como os dados que deveriam ter sido intacta fora da memória alocada está agora comprometida.

Anterior :

Próximo : No
  Os artigos relacionados
·Como adicionar linhas a uma Datagrid 
·Como Iniciar um código C Desde o Prompt de Comando 
·Como fechar programas iPad com Xcode 
·Como escrever um + + Programa Média C 
·Definição de uma placa riser 
·Como depurar com DBX 
·Como corrigir o GCC Aviso declaração implícita de Fu…
·Como criar uma biblioteca de vínculo dinâmico de Aces…
·Como Ler MDB para ODBC 
·Como editar uma cadeia de caracteres de comprimento fix…
  Artigos em destaque
·C Treinamento Online + + 
·Como converter LPSTR para INT 
·Como editar um documento do Word em C # 
·Como fazer uma ligação com Windows Mobile 
·Como procurar uma lista encadeada de elementos em C + +…
·Como passar uma String para abrir um ifstream 
·Como organizar uma lista usando estruturas em C + + 
·Como Teach Yourself Visual C 6 
·Como criar DropDownList com chave de pesquisa em C 
·Como escrever um programa em C que calcula de amanhã D…
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados