Usando uma matriz dinâmica com uma estrutura

matrizes estáticos são alocados na pilha, o que pode limitar a sua utilização. Matrizes dinâmicas são alocados na pilha, o que significa que eles estão apenas limitado pelo tamanho da memória. É certo, você vai encontrar algumas outras diferenças entre matrizes dinâmicas e estáticas, mas a linha de fundo aqui é que, embora matrizes dinâmicas exigem um pouco mais de trabalho para usar, porque você tem de gerir a memória mesmo, eles também oferecem maior flexibilidade no trabalho com dados.

Mais do que provavelmente você vai querer lidar com dados complexos ao fazer uso de matrizes dinâmicas. O exemplo neste artigo on-line visa agradar olhando como você pode usar uma matriz dinâmica com uma estrutura. Aqui está um exemplo do código que você pode usar:

#incluir #incluir usando Employee namespace std-struct {string Name-int Age -} - int main () {Employee * DynArray-DynArray = new (nothrow) Employee [3] -DynArray [0] .Name = "Harvey" -DynArray [0] .Age = 33-DynArray [1] .Name = "Sally" -DynArray [1] .Age = 26-DynArray [2] .Name = "Jeff" -DynArray [2] .Age = 52 cout lt; lt; "Ver o conteúdo matriz" lt; lt; endl-for (int i = 0- i lt; 3- i ++) {cout lt; lt; "Nome:" lt; lt; DynArray [i] .Name lt; lt; " Tage" lt; lt; DynArray [i] .Age lt; lt; endl-} delete [] DynArray-retorno 0-}

Neste exemplo, o código começa com a criação de um struct empregado que contém o nome do funcionário e idade. Você pode usar qualquer tipo de recipiente de dados desejado - este só acontece de ser um struct.

A fim de criar uma matriz dinâmica, você define um ponteiro para a variável de matriz. Esse ato coloca a variável na pilha, em vez da pilha. Você, então, criar a matriz, que contém três Empregado entradas neste caso. O código preenche os dados e, em seguida, usa um loop para exibir os resultados na tela. Aqui está o que você deve ver quando você executar o exemplo.

Exibindo o ContentName matriz: HarveyAge: 33Name: Sally Idade: 26Name: Jeff Idade: 52

Observe que você acessar os membros individuais de Empregado acedendo ao índice de matriz necessárias e, em seguida, usando a sintaxe de pontos para especificar o nome do membro. É importante lembrar que a matriz dinâmica age como qualquer outra matriz em que você acessar um índice para obter uma entrada específica.

É essencial usar excluir[] para liberar a memória usada por DynArray. Caso contrário, sua aplicação terá um vazamento de memória que acabará por afectar o desempenho do sistema ou pelo menos causar-lhe a fazer coisas engraçadas. Porque os nossos sistemas já estão agindo engraçado o suficiente, é provavelmente uma boa idéia para garantir a sua aplicação não "contribuem para o problema.

menu