C and pointer (pointers on C) -- Chapter 11th: dynamic memory allocation (ii) exercises
1. Compile calloc and use malloc internally.
void *calloc (size_t n, size_t size){char * memory;memory =(char*) malloc(n * size);while( memory != NULL){char * ptr;ptr = memory;while ( --n >= 0){*ptr++ = '\0';}}return memory;}
2. Compile a function to dynamically store the input integers in a column.
#include
int * readints(){int *array;int value;int length = 1;array = (int *) malloc(length * sizeof(int));if (array == NULL){return NULL;}while ( scanf_s("%d", &value) == 1){length++;array =(int *) realloc(array, length * sizeof(int));if (array == NULL){return NULL;}array[length-1] = value;}}
3. Compile a function to dynamically store a column of input char.
# Include "stdlib. h "char * readstring () {char * array; char * ptr; int length = 1; array = (char *) malloc (sizeof (char); gets (ptr ); if (ptr = NULL) {exit (EXIT_FAILURE);} while (* ptr! = NULL) {length ++; array = (char *) realloc (array, length * sizeof (char); if (array = NULL) exit (EXIT_FAILURE ); array [length-1] = * ptr; ptr ++;} // append an NULarray = (char *) realloc (array, (length ++) * sizeof (char); if (array = NULL) exit (EXIT_FAILURE); array [length-1] = '\ 0'; return array ;}