A
AC
I noticed that if I declared an array a as
int a[2][3][1], sizeof a is 6 * sizeof(int).
This means that a occupies 6*sizeof(int) consecutive bytes, right? So I can
consider, (int *) &a as a pointer to an array of 2*3*1=6 ints. Is this
correct?
This code works fine for me :
#include <stdio.h>
int
main(void)
{
int a[2][3][1]={1,2,3,4,5,6};
int *p;
int i;
printf("sizeof a =%u\n",(unsigned int) sizeof a);
p = (int *) &a;
for(i=0; i < sizeof a/sizeof(int);i++)
printf("p[%d]=%d\n",i,p);
return 0;
}
int a[2][3][1], sizeof a is 6 * sizeof(int).
This means that a occupies 6*sizeof(int) consecutive bytes, right? So I can
consider, (int *) &a as a pointer to an array of 2*3*1=6 ints. Is this
correct?
This code works fine for me :
#include <stdio.h>
int
main(void)
{
int a[2][3][1]={1,2,3,4,5,6};
int *p;
int i;
printf("sizeof a =%u\n",(unsigned int) sizeof a);
p = (int *) &a;
for(i=0; i < sizeof a/sizeof(int);i++)
printf("p[%d]=%d\n",i,p);
return 0;
}