Ir ao conteúdo
  • Cadastre-se

Dúvida com função usando ponteiro


natanrs

Posts recomendados

Olá pessoal,

Stou iniciando agora com programação em C e stou com um erro no programa aqui. O programa é super simples... você digita um String qualquer e ele muda a posição dos caracteres, ou seja, faz um bagunça na String digitada. Eu fiz sem função e funcionou perfeitamente, mas quero fazer usando função com ponteiro, mas não stou conseguido, tá dando um erro q nao sei o como resolver! Deve ser simples... sou neófito! também nem sei se é realment assim q se faz! Compreensão galera!

Awe vai o código e em seguida o erro:


#include <stdio.h>
#include <conio.h>

void Bagunca (char p[10], char aux1, char aux2, char *result_bagunca) {
int i;
printf("Informe a palavra: ");
scanf("%s",&p);
aux1 = p[i];
p[i] = p[i+3];
p[i+3] = aux1;
aux2 = p[i];
p[i+1] = p[4];
p[i+4] = aux2;
*result_bagunca = p;
}

main()
{ char p[10],aux1,aux2,result_bagunca;
printf("Programa Teste!!!");
printf("Para continuar pressione <ENTER>!");
Bagunca (p,aux1,aux2,&result_bagunca);
printf("O resultado da bagunca é: %s",result_bagunca);
getch();
}

ERRO:

Linha 14 C:Documents and SettingsAdministradorDesktopBagunca.cpp invalid conversion from `char*' to `char'

Aguardo sugestões! Abraço!

By. Natanael R.

OBS.: Se eu tirar o "*" de *result_bagunca = p; o programa compila, mas quado eu digito a String e pressione enter ele dá [Operação ilegal e será fechado!] hehehe

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

bom dia natanrs,

a princípio eu colocaria

void Bagunca (char p[10], char aux1, char aux2) {
char result_bagunca;
scanf("%s",&p);
aux1 = p[i];
p[i] = p[i+3];
p[i+3] = aux1;
aux2 = p[i];
p[i+1] = p[4];
p[i+4] = aux2;
result_bagunca = p;
...

tipo... você passou como parametro pra pegar o valor de result_bagunca... e depois pediu pra pegar o valor novamente e substitui-lo por p...

se caso não compilar, tente não declarar p nos parâmetros e sim dentro do void...

acho que é isso... corrijam se eu estiver errado... xD

[não estou em ksa pra testar... =/]

revivendo um tópico morto... xD

Link para o comentário
Compartilhar em outros sites

Até funcionaria, mas acho que como ele é um parâmetro mudar o valor do seu ponteiro só vai acontecer dentro do escopo da função fiz um teste aqui e o resultado foi esse mesmo... além disso, aquela variável "resultado da bagunça" não é um ponteiro ou vetor e está sendo usada na função como tal, traduzindo, se você tentar passar uma string para ela, gerará uma corrupção de memória, se tentar passar o endereço de uma string seria outro erro, pois dentro do main ela não é um ponteiro

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!