c++ - pointer to function wont work -


i'm trying learn how use pointer function properly. supposed make pointer function strcmp, inside function check, program opens , closes immediately. far understood, pointer function correct on code returntype (*pointer)(parameters)); going wrong? in advance.

void check(char *a,char *b,int (*cmp)(const char*,const char*)) {     printf("testing equality\n");     if(!(*cmp)(a,b)) printf("equals");     else printf("different"); }  int main(void) {     char s1[80] = "daniel" ,s2[80] = "daniel";     int (*p)(const char*,const char*);     p = strcmp();       check(s1,s2,p);      return 0; } 

this line incorrect:

p = strcmp(); 

here you're calling strcmp 0 arguments, invalid. should have gotten clear compiler error this. instance, gcc gives me:

error: few arguments function ‘int strcmp(const char*, const char*)

you want assign strcmp:

p = strcmp; 

also, don't need dereference function pointers call them, !(*cmp)(a,b) simplified !cmp(a,b).


Comments

Popular posts from this blog

css - SVG using textPath a symbol not rendering in Firefox -

Java 8 + Maven Javadoc plugin: Error fetching URL -

order - Notification for user in user account opencart -