Array

Autor
Afiliação

Diogo Silva

Academia da Força Aérea

Slides

Primeira parte

Segunda parte

Videos

  1. Intro, criar, mudar - 5min
  2. Arrays e funções - 5min
  3. Demo exercício salários - 14min
    1. 00:00 explicar enunciado
    2. 01:10 inicio da solução
    3. 02:28 função pedir salarios
    4. 04:05 função para mostrar salários
    5. 07:25 função para somar salários
    6. 9:30 função para a média dos salários
    7. 11:56 utilizador indica quantos salários quer introduzir
  4. Arrays multi-dimensionais - 4min
  5. Demo Arrays multi-dimensionais - 10min
    1. 0:00 explicação do enunciado
    2. 0:56 inicio do resolução
  6. Erros comuns, VLAs - 5min

Vídeos Sharepoint - acesso com conta afa.ium

Extra

Erros comuns

  • Aceder a posições inexistentes do array
  • C permite mas o comportamento não está definido.
int vec[20];
vec[25] = 4;

VLA - o que são?

  • Variable Length Arrays (VLA)
  • Disponíveis apenas para compiladores >C99
  • Permitem criar arrays cujo tamanho é definido durante a execução do programa
  • Estes arrays não podem ser globais.
  • Aplicável a arrays multi-dimensionais.

VLA - exemplo 1

unsigned int n;
printf("tamanho do vector:");
scanf("%u", &n);
int posicoes[n];

VLA - exemplo 2 - multi-dimensional

unsigned int rows, cols;
printf("linhas e colunas da matriz:");
scanf("%u%u", &rows, &cols);
int matrix[rows][cols];

VLA e funções

int func(int n, int vec[n]){
   //...
}

VLA multi-dimensional e funções

int func(int rows, int cols, int mat[rows][cols]){
   //...
}

Desta forma, deixa de ser necessário especificar o tamanho concreto das últimas N-1 dimensões.