• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JD557

[C++]Como são armazenados os arrays bidimensionais?

5 mensagens neste tópico

Ora o que eu queria saber é, como o titulo da mensagem indica, como são armazenados os artrays bidimensionais na memória.

Por exemplo, os arrays unidimensionais são armazenados:

array[0]        array[1]        ...

0x22ff74  0x22ff75      ...

Mas e os bidimesionais, como ficam?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que da mesma forma, com os arrays colocados sequencialmente à frente uns dos outros.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para um array 4x4 ficaria assim:

array[0][0], array[0][1], array[0][2], array[0][3], array[1][0], array[1][1], ..., array[2][0], array[2][1], ...

podes aceder a um array bidimensional como se fosse unidimensional fazendo a conversão dos índices (array[ x ][y] <=> array[x*(nº de colunas)+y]) e fazendo o cast da variável para um array unidimensional (é particularmente útil quando tens uma função que recebe arrays bidimensionais, cujo nº de colunas não é fixo).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Atenção também ao tipo de dados que estás a usar.

Os ponteiros fazem as contas correctas. Mas se estas a trabalhar com Void ou a tentar algum tipo de previsão para os endereços, tens de fazer as contas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora