malloc pointer to array

13,748

Posting comments as answer:
In C you should not to cast the return value of malloc. Please refer this post on SO for more information regarding why typecasting return value of malloc is not a good idea in C. And if for some reason you really really want to cast, it should be (int(*)[2]). (int(*)) is int *. The size passed to malloc looks fine (allocating size for 100 pointers to array of 2 ints). So you should be doing

int (*p)[2];
p=malloc(sizeof(int[2])*100); 

Hope this helps!

Share:
13,748
titus
Author by

titus

Updated on June 24, 2022

Comments

  • titus
    titus about 2 years
    int (*p)[2];
    p=(int(*))malloc(sizeof(int[2])*100);
    

    What is the right way to malloc a pointer to an array? I can't figure out the part with (int(*))