in the first code the output is 4 bcoz *p means *&p[0] that means p[0] that is some address so for 32 bit machine its coming to be 4 bytes.. in the 2nd it is 80 as 20*sizeof(int *) and not as you mentioned..
On Sun, Aug 14, 2011 at 6:12 PM, rShetty <[email protected]> wrote: > Please explain this ... > > #include<stdio.h> > int main() > { > int *p[10]; > printf("%d",sizeof(*p)); > return 0; > } > > Output is 4 > > For this program .... > > #include<stdio.h> > int main() > { > int *p[10][20]; > printf("%d",sizeof(*p)); > return 0; > } > > Output is 80 (10*20*sizeof(int)) > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
