Vetores e Matrizes em C

1002 palavras 5 páginas
15/Mar/2012

Alocação estática de memória
• Ao se declarar uma variável qualquer, o compilador deixa reservado um espaço suficiente na memória para armazená-la

VETORES E STRINGS

int a; // 4 bytes float x; // 4 bytes double y; // 8 bytes char c; // 1 byte char *c;

// 4 bytes

Alocação estática de memória
• Ao fazer a alocação estática, apenas o espaço necessário na memória é reservado
• O conteúdo de cada posição não é alterado, e portanto uma variável apenas declarada pode conter qualquer coisa
• Inicializar as variáveis, atribuindo valores, antes do uso
– Inclusive vetores, matrizes e strings

Vetores
• A referência a uma posição de um vetor indica o cálculo de uma posição de memória a partir do início do vetor float x[1000];
// x[20] está na posição x + 20*sizeof(float)

• Na verdade, o símbolo x é um apontador para o início da região de memória reservada para o vetor

Vetores
• Quando se declara um vetor, o valor entre colchetes indica quantas vezes o espaço de memória necessário para o tipo básico será alocado char v[100]; //

100 * sizeof(char) = 100 bytes

int v[100]; // 100 * sizeof(int) = 400 bytes float vf[200]; // 200 * sizeof(float) = 800 bytes double z[1000]; // 1000 * sizeof(double) = 8000 bytes

Pode-se utilizar: sizeof(v)
Pode ser utilizado para descobrir o tamanho de uma string?

Vetores
• C NÃO AVISA NEM PRODUZ ERRO QUANDO O
LIMITE DE UM VETOR OU MATRIZ FOR
EXCEDIDO
float x[1000]; y = x[2000]; // não dá erro, mas vai acessar
// uma parte inesperada da memória

– Erro mais comum (runtime): segmentation fault

• É responsabilidade do programador verificar os limites, e garantir que não sejam excedidos

1

15/Mar/2012

Matrizes

Matrizes

= Vetores de mais de uma dimensão
• Na verdade, a alocação na memória é linear
• Muda apenas o cálculo da posição de memória do elemento referenciado int M[5][5];
...
M[0][0] = 15;
M[2][3] = 2; // posicao: M + (2*5 + 3)*sizeof(int)

Relacionados

  • Arranjos
    2470 palavras | 10 páginas
  • Exercicios Revisao Vetores Matrizes
    1266 palavras | 6 páginas
  • Trabalho Estrutura De Dados 2
    2291 palavras | 10 páginas
  • Trabalhos
    1865 palavras | 8 páginas
  • ploticage
    373 palavras | 2 páginas
  • algebra linear lista 1
    1875 palavras | 8 páginas
  • SCILAB
    1578 palavras | 7 páginas
  • Matrizes e Determinantes
    961 palavras | 4 páginas
  • fiica
    12936 palavras | 52 páginas
  • Linguagem c
    553 palavras | 3 páginas