Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Alocação Dinâmica de Ponteiro para Ponteiro | Alocação Dinâmica de Memória
Ponteiros e Referências em C++
Seção 4. Capítulo 4
single

single

bookAlocação Dinâmica de Ponteiro para Ponteiro

Deslize para mostrar o menu

Um ponteiro para ponteiro, denotado como ponteiro duplo (**).

Este é um ponteiro que armazena o endereço de memória de outro ponteiro. Em termos simples, é uma variável cujo valor é o endereço de outro ponteiro. Este conceito pode parecer complexo inicialmente, mas fornece um mecanismo poderoso para lidar com alocação dinâmica de memória avançada.

Sintaxe

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Address stored in ptr2 (address of ptr1): " << ptr2 << std::endl; std::cout << "Address stored in ptr1 (address of x): " << *ptr2 << std::endl; std::cout << "Value of x: " << **ptr2 << std::endl; }
  • ptr1: é um ponteiro para um inteiro (int*);
  • ptr2: é um ponteiro duplo para um inteiro (int**).

Alocação Dinâmica de um Array Bidimensional

Se for necessário criar um array bidimensional de forma dinâmica (em tempo de execução), deve-se utilizar um ponteiro para ponteiro para as linhas.

Em seguida, inicializar cada linha com um array dinâmico (como no capítulo anterior)

Tarefa

Deslize para começar a programar

Imagine que você está trabalhando com um aplicativo de planilha onde precisa criar uma tabela de números dinamicamente.

Nesta tarefa, você irá trabalhar com arrays bidimensionais dinâmicos e praticar tanto a alocação quanto a desalocação de memória.

  1. Dentro da função createAndPrint2DArray, aloque dinamicamente um array 2D de inteiros com o número fornecido de linhas e colunas.
  2. Preencha o array com valores calculados como row * columns + column, de modo que cada elemento seja único e dependa de sua posição.
  3. Imprima o array no console em formato tabular.
  4. Libere corretamente toda a memória alocada dinamicamente usando delete[] para cada linha e, em seguida, para o próprio array de ponteiros.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt