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(*))
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!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With