/* 动态数组的实现 */ |
#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) 回复
??
回复评论