Como o ponteiro para o ponteiro funciona em c

Como o ponteiro para o ponteiro funciona em c
Os ponteiros são uma parte crucial da programação C que facilita a manipulação de dados e memória de uma maneira mais proeminente. No entanto, o caso pode chegar quando você precisar manipular um ponteiro em si e é aqui que ponteiro para ponteiro entrará no negócio.

Este artigo discute o funcionamento do ponteiro para o ponteiro na linguagem de programação C.

Antes de seguir para como ponteiro para ponteiro funciona, vamos primeiro discutir o que é ponteiro para ponteiro.

Qual é o ponteiro para o ponteiro

Um ponteiro é uma variável usada para armazenar outro endereço de memória variável. Enquanto um ponteiro para ponteiro, também referido como o Ponteiro duplo é um ponteiro usado para armazenar o endereço de memória de outro ponteiro.

Sintaxe geral para usar o ponteiro para apontar em c

A seguir é a sintaxe para usar um ponteiro para ponteiro Na programação C.

data_type ** variable_name

O ponteiro para ponteiro A variável deve ser definida adicionando dois asteriscos ao seu nome. Por exemplo, a declaração a seguir declara um ponteiro para o ponteiro do INT Datatype.

int ** var;

Como o ponteiro para o ponteiro funciona em c

A ponteiro para ponteiro age de maneira semelhante a um ponteiro comum, exceto que ele modifica o valor real associado ao ponteiro ao qual aponta. Em outras palavras, o endereço de memória mantido em um ponteiro comum é capaz de ser alterado. Vamos considerar um exemplo simples:

int n = 10;
int *pptr1 = & n;
int ** pptr2 = &pptr1;

No código acima, temos uma variável int que armazena um valor inteiro. Também temos um ponteiro chamado “PPTR1” que armazena o endereço de memória da variável n. Depois disso, o “PPTR2” é usado que armazena o endereço de memória do ponteiro pptr1.

Agora, se você quiser acessar os valores de n, você só precisa desreferenciar o ponteiro duas vezes. Na primeira desreferência, você receberá o endereço de memória de “PPTR1”, Enquanto estiver no segundo, você terá o valor de n. Agora você pode obter o valor usando o “Printf ()” função.

Aqui está um código completo para usar o ponteiro para apontar na programação C.

#incluir
int main ()
int n = 10;
int *pptr1 = & n;
int ** pptr2 = &pptr1;
printf ("Valor de n usando pptr2: %d \ n", ** pptr2);
retornar 0;

Saída

Também podemos alocar memória para uma variável de ponteiro em uma função separada e depois aplicar esse ponteiro na função de chamada. O exemplo dado demonstra como fazer isso.

#incluir
#incluir
#incluir
Void Memory_Allocation (char ** my_ptr)

* my_ptr = (char *) malloc (10 * sizeof (char));

int main ()

char *w;
Memory_Allocation (& w);
strcpy (W, "Linuxhint");
printf ("%s \ n", w);
grátis (w);
retornar 0;

No programa acima, o "alocação de memória" função alocada a memória para ptr_1. O ptr_1 age como um ponteiro duplo e armazenou uma corda chamada “Linuxhint” que é impresso na tela.

Saída

Conclusão

O ponteiro para ponteiro é um conceito útil na linguagem de programação C que permite acessar indiretamente um valor variável por meio de várias camadas de ponteiros. Com a ajuda de ponteiro para ponteiro, você pode manipular um ponteiro por si só. As diretrizes acima mencionadas ajudam você a usar ponteiro para ponteiro na programação C, pois também inclui alguns exemplos básicos que ajudam a entender o conceito básico por trás ponteiro para ponteiro.