首页 > 代码库 > C和指针 (pointers on C)——第十一章:动态内存分配(下)习题
C和指针 (pointers on C)——第十一章:动态内存分配(下)习题
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、编写一个函数,动态存储一列输入的整数。
#include <stdlib.h> 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、编写一个函数,动态存储一列输入的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++; } //追加一个NUL array = (char *) realloc (array , (length++) * sizeof(char)); if (array == NULL) exit (EXIT_FAILURE); array[length - 1] = '\0'; return array; }
C和指针 (pointers on C)——第十一章:动态内存分配(下)习题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。