single
Alocaçã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
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)
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.
- Dentro da função
createAndPrint2DArray, aloque dinamicamente um array 2D de inteiros com o número fornecido de linhas e colunas. - Preencha o array com valores calculados como
row * columns + column, de modo que cada elemento seja único e dependa de sua posição. - Imprima o array no console em formato tabular.
- 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
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo