1、編寫calloc,內部用malloc。
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、編寫一個函數,動態存儲一列輸入的整數。
#includeint * 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; } }
#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++; } //追加一個NUL array = (char *) realloc (array , (length++) * sizeof(char)); if (array == NULL) exit (EXIT_FAILURE); array[length - 1] = '\0'; return array; }