Code:
#include <stdio.h>
#include <limits.h>
unsigned int array1[]={0x1, 0x2, 0x0};
unsigned int array2[]={0x5,0x7};
unsigned int *ptr[] ={array1,array2};
unsigned int array[][3] = {
{ 0x1, 0x2, 0x0},
{ 0x5,0x7},
};
int main()
{
size_t total = sizeof array1 + sizeof array1 + sizeof ptr;
printf("sizeof array1 = %lu\n", (long unsigned)sizeof array1);
printf("sizeof array2 = %lu\n", (long unsigned)sizeof array2);
printf("sizeof ptr = %lu\n", (long unsigned)sizeof ptr);
printf("total = %lu\n", (long unsigned)total);
puts("--");
printf("sizeof array = %lu\n", (long unsigned)sizeof array);
return 0;
}
/* my output
sizeof array1 = 12
sizeof array2 = 8
sizeof ptr = 8
total = 32
--
sizeof array = 24
*/
Code:
#include <stdio.h>
#include <limits.h>
unsigned int array1[]={0x1, 0x2, 0x0};
unsigned int array2[]={0x5,0x7};
unsigned int *ptr[10]={array1,array2};
unsigned int array[][3] = {
{ 0x1, 0x2, 0x0},
{ 0x5,0x7},
};
int main()
{
size_t total = sizeof array1 + sizeof array1 + sizeof ptr;
printf("sizeof array1 = %lu\n", (long unsigned)sizeof array1);
printf("sizeof array2 = %lu\n", (long unsigned)sizeof array2);
printf("sizeof ptr = %lu\n", (long unsigned)sizeof ptr);
printf("total = %lu\n", (long unsigned)total);
puts("--");
printf("sizeof array = %lu\n", (long unsigned)sizeof array);
return 0;
}
/* my output
sizeof array1 = 12
sizeof array2 = 8
sizeof ptr = 40 <<edited to be correct>>
total = 64
--
sizeof array = 24
*/