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

Swipe to start coding

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