[c]代码库
/* 动态数组的实现 */
#include <stdio.h>
#include <stdlib.h>
/* 分配数组 */
void * alloc_array(void * p, const int n, const int size) {
p = malloc(size * n);
if (NULL == p) {
printf("Error when allocting memory.\n");
exit(0);
}
memset(p, 0, size * n); /* 将数组空间清0 */
return p;
}
/* 释放数组 */
void free_array(void * p) {
free(p);
p = NULL;
}
int main(void) {
int * p = NULL;
int n = 5;
int i = 0;
/* 使用alloc_array函数为p从堆上分配一个数组空间 */
p = (int *) alloc_array(p, n, sizeof(int));
/* 使用循环语句从标准输入为数组赋值 */
printf("Please input %d numbers:\n", n);
for (i = 0; i < n; ++i)
scanf("%d", &p[i]);
/* 输出数组元素内容 */
printf("Print the element in this array:\n");
for (i = 0; i < n; ++i)
printf("%4d", p[i]);
printf("\n");
free_array(p);
return 0;
}
by: 发表于:2017-08-21 14:33:25 顶(0) | 踩(0) 回复
??
回复评论