Mostrando postagens com marcador vetor. Mostrar todas as postagens
Mostrando postagens com marcador vetor. Mostrar todas as postagens

quinta-feira, 1 de janeiro de 2015

C - scanf() , buffer overflow

Esse post serve mais como uma dica, para você que está iniciando na linguagem C, ou até mesmo para quem já está em um nível mais acima, aliás, é um pouco complicado saber toda a sintaxe que uma linguagem usa.

Imagine você escrevendo um programa com pelo menos 300 linhas, sem ajuda de uma IDE, utilizando o terminal, mais especificamente do Linux. O programa compila normalmente, sem acusar erros, ai bate aquela felicidade. Bem, na hora de rodar o programa, dependendo das funções que você tenha usado, é exibido algum erro de falha de segmentação, e é ai que da aquela tristeza, onde está o erro?

C - Relação entre vetores e ponteiros

Lendo o livro Head First C, me deparei com algo muito interessante. A relação entre vetores e ponteiros.

um vetor meio que serve como um ponteiro, a diferença é que o tamanho do vetor na memória é o tamanho de todos os valores nele contido. Já o tamanho do ponteiro em um sistema de 32 bits assume 4 bytes, em um sistema de 64 bits assume 8 bytes. Isso por que o ponteiro somente aponta para a posição de memória.

Quando se declara um ponteiro a máquina aloca os bytes necessários de acordo com o tipo de sistema, quando se declara um vetor a máquina aloca espaço para guardar o vetor mas não aloca espaço para a variável do vetor.