2012-04-27 4 views
0

Bonjour Je reçois une erreur lorsque j'essaie de passer un caractère à une fonction. voici mon code.Passer un pointeur char dans une erreur de fonction

variables

char *temp; 

Prototype

int checkIfUniqueCourseNo(char,int); 

Appel

checkIfUniqueCourseNo(temp,k); 

et mon erreur

warning: improper pointer/integer combination: arg #1 

Im nouveau à C alors allez-y doucement sur moi :)

Répondre

2

Votre fonction accepte un char; vous essayez de passer dans un char*.

Pour résoudre ce problème, vous devez dereference votre pointeur pour obtenir le caractère qu'il pointe vers, de sorte que votre fonction reçoit le type d'argument, il prévoit:

checkIfUniqueCourseNo(*temp,k); 
+0

tas grâce Mate des thats a fonctionné pour moi: D –

+0

@DanielDC - assurez-vous que vous avez une adresse valide dans le pointeur avant déréférencement (dans votre question que vous venez de déclarer, mais ne l'a pas initialisé) – Attila

0

Si la fonction excepte char, vous devriez déréférencer le pointeur:

checkIfUniqueCourseNo(*temp,k); 
//     ^pass the char addressed by temp 
0

Votre variable est un char* (pointeur char), mais la fonction prend un char (pas un pointeur).

Si vous souhaitez transmettre le contenu de temp à la fonction, utilisez checkIfUniqueCourseNo(*temp, k). Si vous voulez vraiment passer le pointeur lui-même, déclarer la fonction comme

int checkIfUniqueCourseNo(char*,int); 
Questions connexes