Problem of declaration in C language

Discussion in 'C' started by wdliming, Mar 17, 2012.

  1. wdliming

    wdliming New Member

    Joined:
    Sep 26, 2010
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    0
    Today ,I have read the
    <Expert C Programming,Deep C Secrets>,
    Chapter 3.Unscrambling Declarations in C.
    The author introduce the declaration of a little complicated function,then he left another exercise:
    Code:
    char *(*(c[10]))(int **p);
    the answer is given at the of the Chapter 3

    However, I am uncertain about the "c[10]",
    the book is said:"c is an array[0...9] of pointer to a function returning a pointer-to-char",
    I am thinking...
    Is there a 10 function pointers ?
    Could some master give me a example to show how to use the
    char *(*(c[10]))(int **p);
    in a C Program?
    Thank you very much!
     
    Last edited by a moderator: Mar 17, 2012
  2. PieterBeyens

    PieterBeyens New Member

    Joined:
    Mar 19, 2012
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Home Page:
    http://www.bytelead.be
    Something like this?

    Code:
    #include <stdio.h>
    
    char *(*(c[10]))(int **p);
    
    char strf0[] = "function0";
    
    char *f0(int **p)
    {
    	(void) p;
    	return strf0;
    }
    
    int main(int argc, char** argv){
    	c[0] = f0;
    	printf("%s\n",f0(0));
    	return 0;
    }
    
    Pieter Beyens
    Bytelead
     
  3. Scripting

    Scripting John Hoder

    Joined:
    Jun 29, 2010
    Messages:
    421
    Likes Received:
    57
    Trophy Points:
    0
    Occupation:
    School for life
    Location:
    /root
    Yea, nice example.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice