Page 48 - C-Language
P. 48
and those two as well:
val = array[4];
val = 4[array]; /* Weird but valid C ... */
C doesn't perform any boundary checks, accessing contents outside of the declared array is
undefined (Accessing memory beyond allocated chunk ):
int val;
int array[10];
array[4] = 5; /* ok */
val = array[4]; /* ok */
array[19] = 20; /* undefined behavior */
val = array[15]; /* undefined behavior */
Define array and access array element
#include <stdio.h>
#define ARRLEN (10)
int main (void)
{
int n[ ARRLEN ]; /* n is an array of 10 integers */
size_t i, j; /* Use size_t to address memory, that is to index arrays, as its guaranteed to
be wide enough to address all of the possible available memory.
Using signed integers to do so should be considered a special use case,
and should be restricted to the uncommon case of being in the need of
negative indexes. */
/* Initialize elements of array n. */
for ( i = 0; i < ARRLEN ; i++ )
{
n[ i ] = i + 100; /* Set element at location i to i + 100. */
}
/* Output each array element's value. */
for (j = 0; j < ARRLEN ; j++ )
{
printf("Element[%zu] = %d\n", j, n[j] );
}
return 0;
}
Allocate and zero-initialize an array with user defined size
#include <stdio.h>
#include <stdlib.h>
int main (void)
https://riptutorial.com/ 24

