ex12-1.c
/* code: ex12-1.c (v1.16.00) */
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 3000000
int main ()
{
int array[ARRAY_SIZE];
int i;
for (i = 0; i < ARRAY_SIZE; i++) {
array[i] = 100;
}
for (i = 0; i < 10; i++) {
printf ("%d ", array[i]);
}
return 0;
}
ex12-2.c
/* code: ex12-2.c (v1.16.00) */
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 3000000
int array[ARRAY_SIZE];
int main ()
{
int i;
for (i = 0; i < ARRAY_SIZE; i++) {
array[i] = 100;
}
for (i = 0; i < 10; i++) {
printf ("%d ", array[i]);
}
return 0;
}
ex12-3.c
/* code: ex12-3.c (v1.16.00) */
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 3000000
int main ()
{
int *array;
int i;
array = malloc (sizeof (int) * ARRAY_SIZE);
if (NULL == array) {
fprintf (stderr, "Error: malloc() \n");
exit (-1);
}
else {
for (i = 0; i < ARRAY_SIZE; i++) {
array[i] = 100;
}
for (i = 0; i < 10; i++) {
printf ("%d ", array[i]);
}
free (array);
}
return 0;
}
ex12-4.c
/* code: ex12-4.c (v1.16.00) */
#include <stdio.h>
#include <stdlib.h>
/* ------------------------------------------- */
int main ()
{
int **array;
int i, j, rows, columns;
rows = 768;
columns = 1024;
array = malloc (rows * sizeof (int *));
for (i = 0; i < rows; i++) {
array[i] = malloc (columns * sizeof (int));
}
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
array[i][j] = rand () % 10;
}
}
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
printf ("%d ", array[i][j]);
}
printf ("\n");
}
for (i = 0; i < rows; i++) {
free (array[i]);
}
free (array);
return 0;
}
ex12-5.c
/* code: ex12-5.c (v1.16.00) */
#include <stdio.h>
#include <stdlib.h>
/* ------------------------------------------- */
int main ()
{
int **array;
int i, j, rows, columns;
rows = 768;
columns = 1024;
array = malloc (rows * sizeof (int *));
array[0] = malloc (rows * columns * sizeof (int));
for (i = 1; i < rows; i++) {
array[i] = array[0] + i * columns;
}
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
array[i][j] = rand () % 10;
}
}
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
printf ("%d ", array[i][j]);
}
printf ("\n");
}
free (array[0]);
free (array);
return 0;
}
q12-1.c
/* code: q12-1.c (v1.16.00) */
#include <stdio.h>
#include <stdlib.h>
/* ------------------------------------------- */
int main ()
{
int ***array;
int i, j, k;
int x, y, z;
x = 10;
y = 20;
z = 30;
array = malloc (x * sizeof (int **));
for (i = 0; i < x; i++) {
array[i] = malloc (y * sizeof (int *));
for (j = 0; j < y; j++) {
array[i][j] = malloc (z * sizeof (int));
}
}
for (i = 0; i < x; i++) {
for (j = 0; j < y; j++) {
for (k = 0; k < z; k++) {
array[i][j][k] = rand () % 10;
}
}
}
for (i = 0; i < x; i++) {
for (j = 0; j < y; j++) {
for (k = 0; k < z; k++) {
printf ("%d ", array[i][j][k]);
}
}
}
for (i = 0; i < x; i++) {
for (j = 0; j < y; j++) {
free (array[i][j]);
}
free (array[i]);
}
free (array);
return 0;
}
q12-2.c
/* code: q12-2.c (v1.16.00) */
#include <stdio.h>
#include <stdlib.h>
/* ------------------------------------------- */
int **m2d_allocate (int rows, int columns)
{
int **array;
int i;
array = malloc (rows * sizeof (int *));
for (i = 0; i < rows; i++) {
array[i] = malloc (columns * sizeof (int));
}
return array;
}
/* ------------------------------------------- */
void m2d_deallocate (int **array, int rows)
{
int i;
for (i = 0; i < rows; i++) {
free (array[i]);
}
free (array);
}
/* ------------------------------------------- */
int main ()
{
int **array;
int i, j, rows, columns;
rows = 768;
columns = 1024;
array = m2d_allocate (rows, columns);
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
array[i][j] = rand () % 10;
}
}
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
printf ("%d ", array[i][j]);
}
printf ("\n");
}
m2d_deallocate (array, rows);
return 0;
}
EOF