Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Inicialização fácil de array de ponteiros em C:dicas e práticas recomendadas


Um ponteiro é uma variável que armazena o endereço de outra variável. O nome da variável ponteiro deve ser prefixado pelo símbolo "*". Assim como no caso de uma variável normal, também podemos declarar um “array de ponteiros”, onde cada subscrito do array contém o endereço de um tipo de array.

Como inicializar um array de ponteiros em C?


Uma variável ponteiro pode ser inicializada no momento da declaração, atribuindo-lhe o endereço de uma variável existente. O trecho a seguir mostra como você pode inicializar um ponteiro -
06 
Por padrão, todas as variáveis, incluindo as variáveis de ponteiro, pertencem à "classe de armazenamento automático". Isso significa que uma variável de ponteiro armazenará um endereço de memória imprevisível, lixo e aleatório, o que pode levar a um comportamento indefinido e riscos potenciais para um programa, como erros de falha de segmentação. Portanto, deve ser inicializado com NULL se não tivermos um valor específico para armazenar no momento da declaração.
16 
Uma "matriz de ponteiros" armazena o endereço em cada elemento. O tipo da matriz deve corresponder ao tipo da variável de destino.

Inicializar matriz de ponteiros usando palavra-chave estática


Você também pode usar a palavra-chave estática para inicializar uma matriz de ponteiros para armazenar “0” em cada subscrito.

Exemplo

23 

Saída


Execute o código e verifique sua saída -
37 

Inicializar matriz de ponteiros inteiros


Aqui, declaramos um array de ponteiros inteiros e armazenamos os endereços de três variáveis inteiras.

Exemplo

46 

Saída


Execute o código e verifique sua saída -
54 

Inicializar matriz de ponteiro por endereços diretos


Podemos armazenar o endereço de cada elemento de um array normal no elemento correspondente de um array de ponteiros.

Exemplo

66 

Saída


Execute o código e verifique sua saída -
78 

Atravessando um array com seu endereço base


Quando obtemos o endereço base de um array (neste caso "&arr[0]"), podemos obter os endereços de seus elementos subsequentes, sabendo que o ponteiro aumenta de acordo com o tamanho do tipo de dado.

Assim, apenas com o endereço base (o nome do array é igual ao endereço do 0º elemento), podemos percorrer um array.

Exemplo 1


Dê uma olhada no exemplo a seguir -
85 

Saída


Execute o código e verifique sua saída -
95 

Exemplo 2:Percorrendo um array 2D usando um array de ponteiros


Neste exemplo, temos um array 2D. O endereço do 0º elemento de cada linha é armazenado em uma matriz de ponteiros. Ao percorrer, o endereço armazenado em cada elemento da matriz de ponteiros, que aponta para o 0º elemento da linha correspondente, cada um incrementado para buscar os valores em cada linha.
103 

Saída


Quando você executa este código, ele produzirá a seguinte saída -
110 

Exemplo 3


Nós realmente não precisamos de um array de ponteiros aqui, pois podemos usar o nome deste array 2D como seu ponteiro base e incrementá-lo linha e coluna para buscar os elementos no array 2D fornecido -
125 

Saída


A saída é semelhante à do código anterior -
139 

Inicializar matriz de ponteiros de caracteres (string)


Na programação C, uma string é uma matriz do tipo de dados char. Como o nome de um array também representa o endereço de seu 0º elemento, uma string pode ser declarada como -
142 
Usando a notação de ponteiro, uma string é atribuída a um ponteiro char como -
155 
Podemos então declarar um array de ponteiros char para armazenar múltiplas strings da seguinte forma -
161 

Exemplo


O exemplo a seguir possui uma matriz de ponteiros char que é usada para armazenar os nomes de linguagens de computador -
174 

Saída


Quando você executa este código, ele produzirá a seguinte saída -
182 
Neste programa, “langs” é um ponteiro para um array de 10 strings. Portanto, se "langs[0]" apontar para o endereço 5000, então "langs + 1" apontará para o endereço 5004 que armazena o ponteiro para a segunda string.

Portanto, também podemos usar a seguinte variação do loop para imprimir o array de strings -
193 

Inicialização de matriz dinâmica de ponteiros


Você pode usar a função malloc() para declarar e inicializar um array de ponteiros de forma dinâmica.

Exemplo


Dê uma olhada no exemplo a seguir -
208 

Saída


Quando você executa este código, ele produzirá a seguinte saída -
215 
Você pode até solicitar a entrada do usuário e atribuir os valores aos elementos no ponteiro dos arrays -
225 

Linguagem C

  1. Dominando ponteiros de caracteres e uso de funções em C
  2. C# - Matrizes
  3. C - Tipos de dados
  4. C União
  5. Escopo da variável C#
  6. Dominando ponteiros e matrizes multidimensionais em C
  7. Funções virtuais C++
  8. Tutorial C# ArrayList com exemplos
  9. Operadores em C++ com Exemplo:O que é, Tipos e Programas
  10. C Funções da Biblioteca Padrão