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

Flames

Vetor de ponteiros

Recommended Posts

Flames

Faça um programa que construa um vetor de caracteres (char) pedidos ao utilizador.

Deve, ainda, construir um segundo vetor, do tamanho do primeiro, mas, cujos

elementos são ponteiros para caracteres (char *). No seu programa, desenvolva as

seguintes funções:

1) Função que recebe os dois vetores e faça cada um dos elementos do segundo vetor

apontar para o da posição correspondente no primeiro vetor (a posição 0 do vetor de

ponteiros aponta para a posição 0 do vetor de caracteres, etc.).

O 1) simplesmente não percebo como fazer (I know I know que é simples por algum motivo ando aqui):

Segue o código que não faz o pretendido...

#include <stdio.h>
#include <stdlib.h>
#define maxim 3

void inserir_chars(char *v);
void imprimir(char *v);
void passagem_ponteiros(char *v, char *secundario);
int main()
{
char *vect_principal;
char *vect_secundario;
vect_principal=malloc((maxim+1)*sizeof(char));
vect_secundario=malloc((maxim+1)*sizeof(char));
inserir_chars(vect_principal);
passagem_ponteiros(vect_principal,vect_secundario);
imprimir(vect_secundario);
return 0;
}

void passagem_ponteiros(char *v, char *secundario){
int i;
char *ptr;
ptr=v;
char *ptr2;
ptr2=secundario;
for (i=0;i<maxim;i++){
/*so que assim fico com o valor e nao o ponteiro acho eu*/
/*maxim = 3*/
*ptr2=*ptr;
ptr++;
ptr2++;
}


}

void inserir_chars(char *v){
char *i;
char *final=v+maxim;
for(i=v;i<final;i++){
scanf("%s",i);
}
*(v+maxim)='\0';

}

void imprimir(char *v){
printf("%c",*v);
printf("%c",*(v+1));
printf("%c",*(v+2));


}

Edited by pmg
Falta LP no GeSHi

Share this post


Link to post
Share on other sites
HappyHippyHippo

não vou comentar o código, somente o tipo de dados :

// ponteiro para uma posição de memória em que
// os elementos nessa posição de memória serão interpretados como char's
// (cada elemento : 1 byte)
char * array1;

// ponteiro para uma posição de memória em que
// os elementos nessa posição de memória serão interpretados como ponteiros para char's
// (cada elemento : 4 byte, em cpu's de 32bits ou 8 bytes em cpu's de 64bits)
char ** array2;

agora corrige o teu código


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.