Ir ao conteúdo
  • Cadastre-se

Vetor de ponteiro


Tolrok

Posts recomendados

olá a todos, eu estou aprendendo programação na faculdade e meu professor ensinou vetor de ponteiros, eu não saquei muito bem quando funciona.

Pois quando mando para uma função se tem **Nome do vetor. Acredito que seja o primeiro * porque o vetor já é um ponteiro que aponta para primeira casa e o segundo asterisco seja porque o elemente que tenha dentro dele seja um endereço. Se alguém puder me explica isso melhor eu agraderecia muito.

E gostaria de pedir que tiver exercicios mais simples de vetor de ponteiros me passar. Pode envolver struct, definir tipo, função, arquivo de texto, tipos inteiros, float e caractere, alocação dinamica, busca sequencial ou binaria e strings.

É isso obrigado quem me ajudar...

Link para o comentário
Compartilhar em outros sites

Quando você declara int x[5]; você tem 5 elementos inteiros.

Quando você declara int *p_x[5]; você tem 5 endereços para inteiro, ou seja, você pode guardar 5 referências para inteiro.

Suponha que você tem 5 variáveis inteiras na main e passou os endereços delas para uma função e guardou nesse vetor de ponteiros.

Para alterar uma delas é só fazer:

*(p_x[indice_da_variável]) = novo_valor;

É simples...

Funciona como qualquer outra variável...

-

Link para o comentário
Compartilhar em outros sites

Quando você declara int x[5]; você tem 5 elementos inteiros.

Quando você declara int *p_x[5]; você tem 5 endereços para inteiro, ou seja, você pode guardar 5 referências para inteiro.

Suponha que você tem 5 variáveis inteiras na main e passou os endereços delas para uma função e guardou nesse vetor de ponteiros.

Para alterar uma delas é só fazer:

*(p_x[indice_da_variável]) = novo_valor;

É simples...

Funciona como qualquer outra variável...

-

Saquei, obrigado. Mas você poderia me dar uma luz para quando passa esse vetor de ponteiros para uma função? Porque fica como se fosse mais de 1 ponteiros.

Link para o comentário
Compartilhar em outros sites

Cara, já disse, ponteiros funcionam como qualquer outra variável...

Se você sabe passar um vetor normal para uma função, você também sabe passar um vetor de ponteiros...

Estude isso:

#include <stdio.h>

int haba(int **vetor)
{
int i;

for(i=0;i<4;i++)
{
printf("%c = [%d]\n",65+i,*(vetor[i]));
}
}

int main()
{
int A=4;
int B=7;
int C=1;
int D=9;
int *vetor[4];

vetor[0]=&A;
vetor[1]=&B;
vetor[2]=&C;
vetor[3]=&D;

haba(vetor);

getchar();

return 0;
}

-

Link para o comentário
Compartilhar em outros sites

Um outro exemplo para ajudar:

# include <stdio.h>
# include <stdlib.h>

void imprimir_matriz ( int *M[] , int L , int C ) {
int i , j ;
for ( i=0 ; i<L ; i++ ) {
for ( j=0 ; j<C ; j++ ) {
printf(" %i",M[L][C]) ;
}
printf("\n") ;
}
}

int main ( int ac , char *av[] ) {
int *M[4] /* quatro linhas, vamos criar 3 colunas */ ;
int i ;
for ( i=0 ; i<4 ; i++ ) {
// Criar cada linha da matriz
M[i] = malloc( sizeof(int) * 3 ) ; // 3 elementos por linha, pois são 3 colunas
M[i][0] = 1 + ( i+1 )*10 ; // Determinando o elemento da coluna 0 na linha "i"
M[i][1] = 2 + ( i+1 )*10 ; // Determinando o elemento da coluna 1 na linha "i"
M[i][2] = 3 + ( i+1 )*10 ; // Determinando o elemento da coluna 2 na linha "i"
}
// Matriz construída, vamos imprimí-la
imprimir_matriz(M,4,3) ;
}

Agora, como faz identação aqui?

Link para o comentário
Compartilhar em outros sites

Agora consegui me ligar e entender, obrigado. é porque estou acostumado a mandar um vetor para uma função com outra sintaxe.

E interessanta a matriz alocada dinamicamente.

Por mim ta resolvido, pode fechar o topico... Agradeço bastante a ajuda que me deram.

Se o moderador achar melhor não fechar porque surgiu uma duvida do amigo ali... Tranquilo! É isso...

Agora, como faz identação aqui?

Identação ou a sintaxe? Ta identado!

Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!