/* * demonstrate how sizeof readts to a pointer constant and a pointer variable * * Matt Bishop, ECS 36A * * May 14, 2024: original version */ #include <stdio.h> #include <malloc.h> /* the variables */ char a[100]; /* array of 100 chars -- a is pointer constant */ char *b; /* pointer variable */ int main(void) { /* * first the array (pointer constant) */ printf("First, the pointer constant . . .\n"); printf("sizeof(a) = %lu\n", sizeof(a)); printf("number of bytes in array a = %lu\n\n", sizeof(a[0]) * 100); /* * allocate space for b */ if ((b = malloc(100 * sizeof(char))) == NULL){ perror("malloc"); return(1); } /* * next the allocated array (pointer variable) */ printf("Next, the pointer variable . . .\n"); printf("sizeof(b) = %lu\n", sizeof(b)); printf("number of bytes in array b = %lu\n", sizeof(b[0]) * 100); /* phew -- glad that's over */ return(0); }
|
ECS 36A, Programming & Problem Solving Version of April 2, 2024 at 12:13PM
|
You can get the raw source code here. |