Question regarding pointer typecasting and manipulation

Discussion in 'C Programming' started by Arun Prasath, Nov 24, 2003.

  1. Arun Prasath

    Arun Prasath Guest

    Hi all,

    I have the following question regd pointer typecasting. Is the
    following type of pointer typecasting valid?


    #define ALLOC(type,num) ((type *)malloc(sizeof(type)*num))

    /*begin code*/

    struct node{
    :
    } node;

    typedef node *nodeptr;
    node **nodeptrptr;

    nodeptrptr = (nodeptr *)ALLOC(node,NUM_OF_NODES)

    /*end code*/

    Is the above code valid? If so, can anyone explain how it works? How
    can a pointer to a memory chunk be typecast to a pointer to a pointer
    to a memchunk?

    Thanks,
    Arun
     
    Arun Prasath, Nov 24, 2003
    #1
    1. Advertising

  2. Arun Prasath

    James Hu Guest

    On 2003-11-24, Arun Prasath <> wrote:
    > I have the following question regd pointer typecasting. Is the
    > following type of pointer typecasting valid?
    >
    > #define ALLOC(type,num) ((type *)malloc(sizeof(type)*num))


    This cast is unecessary. Remove it.

    >
    > /*begin code*/


    Wasn't the #define above code?

    >
    > struct node{
    >:
    > } node;


    This won't compile.

    >
    > typedef node *nodeptr;


    Even after fixing struct node above, this won't compile.

    > node **nodeptrptr;


    Ditto here.

    >
    > nodeptrptr = (nodeptr *)ALLOC(node,NUM_OF_NODES)


    Since the declaration of nodeptrptr didn't compile, it is undefined
    at this point.

    >
    > /*end code*/
    >
    > Is the above code valid? If so, can anyone explain how it works?


    The above code is invalid. It can't possibly work.

    It seems you intended to create a typename called node.

    > How can a pointer to a memory chunk be typecast to a pointer to a
    > pointer to a memchunk?


    If you remove the cast in the ALLOC macro, you won't need the
    cast in the assignment to nodeptrptr. However, the assignment
    is likely wrong, depending on how you define struct node.

    -- James
     
    James Hu, Nov 24, 2003
    #2
    1. Advertising

  3. Groovy hepcat Arun Prasath was jivin' on 23 Nov 2003 22:38:09 -0800 in
    comp.lang.c.
    Question regarding pointer typecasting and manipulation's a cool
    scene! Dig it!

    >I have the following question regd pointer typecasting. Is the
    >following type of pointer typecasting valid?


    Here's a thought. Why don't you read the responses you got the first
    time you asked this?
    FCOL, Usenet is not an instantaneous medium. You have to wait for
    responses. They could come within seconds, minutes, hours, days or
    even weeks. I've even seen responses come *months* after the original
    post was forgotten.
    So post once and only once, then *wait*!

    --

    Dig the even newer still, yet more improved, sig!

    http://alphalink.com.au/~phaywood/
    "Ain't I'm a dog?" - Ronny Self, Ain't I'm a Dog, written by G. Sherry & W. Walker.
    I know it's not "technically correct" English; but since when was rock & roll "technically correct"?
     
    Peter Shaggy Haywood, Nov 26, 2003
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. venkatesh
    Replies:
    1
    Views:
    8,279
    lallous
    Dec 6, 2003
  2. Robert Street

    Advanced pointer typecasting

    Robert Street, Feb 20, 2004, in forum: C++
    Replies:
    3
    Views:
    6,994
    Robert Street
    Feb 21, 2004
  3. dis
    Replies:
    2
    Views:
    1,491
    Eric Sosman
    Jun 11, 2004
  4. venkat

    regarding typecasting

    venkat, Jun 5, 2008, in forum: C++
    Replies:
    9
    Views:
    380
    James Kanze
    Jun 6, 2008
  5. somenath
    Replies:
    2
    Views:
    177
    somenath
    Aug 29, 2013
Loading...

Share This Page