2016-11-22 1 views
0

C 언어를 사용하여 mainargv 매개 변수를 을 stderr에 인쇄 할 함수에 전달하려고합니다. 나는 이러한 유형의 오류 점점 계속argv 함수가 작동하지 않음

void erreur(Erreur_prog erreur_entree, const char **argv) 
{ 

    switch (erreur_entree) 
    { 
    case status_ok: 
     fprintf(stderr, "%s : Le status est ok.\n", argv[0]); 
     exit(0); 
     break; 
    case fichier_pgm_manquant: 
     fprintf(stderr, "%s : Le fichier PGM est manquant.\n", argv[0]); 
     exit(fichier_pgm_manquant); 
     break; 
    default: 
     fprintf(stderr, "%s : Erreur.\n", argv[0]); 
    } 

} 

: 여기

void erreur(Erreur_prog erreur_entree, const char **argv); 

함수입니다 : 여기

은 함수 서명입니다 여기

tp2.c:139:33: attention : passing argument 2 of ‘erreur’ from incompatible pointer type 
erreur(arguments_invalide, argv); 
^ 
tp2.c:55:6: note: expected ‘const char **’ but argument is of type ‘char **’ 
void erreur(Erreur_prog erreur_entree, const char **argv); 

을의 예 전화 :

erreur(arguments_invalide, argv); 

나는 포인터로 놀아 보려고했지만 ... 내가 얻지 못하는 것이있다.

누구나 내가 놓친 것을 지적 할 수 있습니까?

+3

'expected 'const char **'하지만 인수는 'char **'유형입니다. '그 메시지는 명확하지 않습니까? – kaylum

+0

전화 파트를 넣는 것을 잊어 버리 셨습니다 ... – Cyberflow

+1

[왜 char \ * \ *를 const char \ * \ *로 전달하면 경고 메시지가 나타 납니까?] (http://stackoverflow.com/questions/14562845/why -does-passing-char-as-const-char-generate-a-warning) – DIMMSum

답변

0

좋은 성적을주고 내 머리를 지우고 코드를 다시 배열하면 작동합니다. 호출의 예를 다음

void erreur(Erreur_prog erreur_entree, const char * nomAppli) 
{ 

    switch (erreur_entree) 
    { 
    case status_ok: 
     fprintf(stderr, "%s : Le status est ok.\n", nomAppli); 
     exit(0); 
     break; 
    case fichier_pgm_manquant: 
     fprintf(stderr, "%s : Le fichier PGM est manquant.\n", nomAppli); 
     exit(fichier_pgm_manquant); 
     break; 
    default: 
     fprintf(stderr, "%s : Erreur.\n", nomAppli); 
    } 

} 

것 :

erreur(arguments_invalide, argv[0]); 

더 이상 컴파일 경고

다음
void erreur(Erreur_prog erreur_entree, const char * nomAppli); 

함수입니다 : 여기

은 함수 서명입니다

는 것 같아요 그는 내가 const를 문자를 사용하는 것을 좋아하지 않았다 ** 그것은 포인터에 대한 포인터이고 내가 포인터 (const를 문자 * monAppli)

희망이 의지를 사용하는 데 필요한

서명에 ARGV 미래의 다른 사람들을 도우십시오.

관련 문제