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