Ir para conteúdo
Fórum Script Brasil
  • 0

Ponteiros, Matrizes e Vetores


Skarface

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...