Ir ao conteúdo
  • Cadastre-se

Dificuldade com ponteiro para funçao


Posts recomendados


 

O objetivo era fazer a função strcmp, da lib string.h, só com um ponteiro pra funçao, usando a funçao check.


 

//////////////////////////////////

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

 

 

void check(char *a,char *b,int (*cmp)(const char*,const char*)){

    printf("Testando semelhança\n"); if(!(*cmp)(a,B)) printf("iguais"); else printf("diferentes");

}

int main(void){

char s1[80] = "daniel" ,s2[80] = "daniel"; int (*p)(const char*,const char*);

p = strcmp();

 

 

gets(s1);gets(s2);

 

check(s1,s2,p);

 

return 0;

 

 

}

/////////

 

Não a erro de compilaçao, porém na hora de rodar o programa ele fecha assim que abre. Obrigado pela atenção de todos.

 

Att,

Daniel Bezerra

Link para o comentário
Compartilhar em outros sites

Coloca isso "system("pause");" antes do "return 0;  "

 

Mas porque você seta a String e depois utiliza  get? 

 

 

Vai ficar assim : 
///////////////////

 

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

 
 
void check(char *a,char *b,int (*cmp)(const char*,const char*)){
    printf("Testando semelhança\n"); if(!(*cmp)(a, B)) printf("iguais"); else printf("diferentes");
}
int main(void){
char s1[80] = "daniel" ,s2[80] = "daniel"; int (*p)(const char*,const char*);
p = strcmp();
 
 
gets(s1);gets(s2);
 
check(s1,s2,p);
system("pause");
return 0;
 
 
}
 
///////////////////

 se não der certo assim, troca o "pause" por 'pause'

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Sei ... é porque estou sem o compilador instalado nessa maquina.. mas vou explicar o que está acontecendo.. você não deve está usando uma IDE e sim compilou o código e está executando o programa gerado.

Aí é o seguinte, quando você apenas abre o programa, ele faz o fluxo dele rapidamente e já encerra com o return 0;

Caso você queira que ele dê uma simples pausa, era c/ esse comando que enviei.. 
Caso você queria só que ele pare mesmo kkk coloque um gets após a chamada do seu metodo.

 

Caso queira uma ferramenta pra trabalhar melhor sugiro baixar o code:blocks
Se você quiser não ter q fazer nada disso... faz o seguinte... 
Abre a linha de comando do windows ou linux.
Navegue até a pasta e coloque pra executar.

Um modo fácil de fazer isso é o seguinte: Compila o código e joga o programa executavel no "Desktop" .. é a tela do inicar do windows.
Aí abre a linha de comando ( windows + R; e digita "cmd" ) ou segue esse passos ( INICIAR -> TODOS OS PROGRAMAS -> ACÉSSORIOS -> PROMPT DE COMANDO ) 

aí depois digita esses comandos : 

Digita: cd Desktop
(aperta enter para executar e acessar a pasta "Desktop")
após isso digita o nome do seu programa e aperta Enter.

 

Espero que funcione.. por favor da um feedback pra saber o que deu =D
 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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!