Ir ao conteúdo

uso de delete para matrizes dinamicas multidimensionais


barutaji

Posts recomendados

Postado

Olá amigos,

Surgiu-me uma dúvida acerca do uso do comando delete:

Para se usar em matrizes usamos:

delete []blabla;

Até aí ok. Mas no caso de matrizes multidimensionais, como char **blabla?

delete []blabla;

já dá conta do recado? ou precisaria:

delete [][]blabla;

ou ainda:

for(int i=0; i<LIMITE; i++)
delete [] blabla[i];
delete [] blabla;

Alguma luz?

Postado

Não sei se isso depende do compilador, talvez não mas no meu funciona da seguinte maneira:

quando declaro

int *ptr = new int[10];

há duas maneiras de se deletar (no meu caso):

delete []ptr;
delete ptr;// funciona igual

quando declaro uma matriz multidimensional:

int *ptr[2] = {new int[10], new int[10]}

deleto dessa forma:

delete ptr[0];
delete ptr[1]; seria necessário um loop se fosse muito grande

mas também funciona assim:

delete []ptr[0];
delete []ptr[1];

se eu colocar apenas delete []ptr; numa multidimensional recebo um erro, algo com corrupção de memória ;)

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!