Jump to content
Fórum Script Brasil
  • 0

Ponteiros, Matrizes e Vetores


Skarface
 Share

Question

O nome de um vetor é um ponteiro para seu primeiro elemento. Então por que existe esta diferença quando vamos associar ponteiros a vetores e matrizes?

int vetor[10]
int *p;
p=vetor;
int matriz[10][10]
int *p;
p=matriz[0];

Por que quando associamos o ponteiro a um vetor não podemos colocar o índice 0 (zero) e quando associamos um ponteiro a uma matriz devemos colocar o índice 0 (zero).

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Isso acontece pois você deve coincidir o número de níveis do vetor/matriz com o ponteiro.

Assim, uma matriz com dois níveis deve ser atribuída para um ponteiro de dois níveis. Exemplo:

int matriz[5][100];
int **p;
p = matriz;
Se sua matriz tem 3 níveis e o ponteiro tem 1, você precisa tirar dois níveis da matriz:
char matriz[3][5][20];
int *p;
p = matriz[2][4];

Ficou mais claro? Resta alguma dúvida?

Abraços,

Marcelo Utikawa da Fonseca

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...