Pergunta : Excedente do amortecedor

Isto uma pergunta de som rápida, mas óbvia. Se você tem um amortecedor de 16 bytes, quanto dados pode você põr neles antes das excedentes do amortecedor? Eu supor 16 bytes, mas eu fui dito que este é um bocado de uma pergunta do truque. Qualquer um sabe? class= do

Resposta : Excedente do amortecedor

A chave será a corda é sabida tipicamente igualmente como a corda terminada nula. Significando se tem o comprimento de 16 que é exclusivo de um caráter NULO. Do parser a necessidade tipicamente de encontrar o carvão animal NULO de modo que saiba que veio à extremidade da corda e pode prosiguer fazer outras ações (como a cópia a selecionar, etc.). Assim o alocamento da memória (montão ou pilha), esta deve sempre ser tomado de pelo programador.

E.g. carbonizar a corda [LENGTH+1] ou o string_ptr = o malloc (LENGTH+1)

Transbordar assim ele é simplesmente dizer que se você tem o amortecedor de 16 bytes, traduz na corda do carvão animal [COMPRIMENTO] onde o COMPRIMENTO é 16. Assim a corda esperou assegurar-se de que nenhum excesso devesse ser um menos (por exemplo LENGTH-1). Naturalmente, eu estou supor que a disposição do byte é certamente tipo terminado nulo disposição. Se não, deve ser verificação recebendo as funções etc. (comprimento baseado do byte) nos códigos.

Há mais ao excesso tais que cancela o endereço do retorno e etc. mas sugere que você possa verific para fora esta ligação para ver se há bom @ http://en.wikipedia.org/wiki/Buffer_overflow lido
Outras soluções  
 
programming4us programming4us