一维动态数组的实现(c语言)
2016-06-07 16:15
513 查看
编程输入一个班的某课程的学生成绩,计算其平均分,然后输出。班级人数由键盘输入。
注意的是最后有个内存释放。还有就是因为堆空间是有限的,所以动态分配内存后,必须检查函数malloc()的返回值,确保使用前不是NULL,即非空指针,任何空指针均意味着它不指向任何对象,不应该使用它。如果使用空指针则可能会导致程序瘫痪。
#include <stdio.h> #include <stdlib.h> main() { int *p = NULL,i,n,sum; printf("Please enter array numbers: "); scanf("%d",&n); p = (int*)malloc(sizeof(int)*n); if(p==NULL) { printf("No enough memory !\n"); exit(0); } printf("Please input %d scores:",n); for (i=0;i<n;i++) { scanf("%d",p+i); } sum = 0; for (i =0;i<n;i++) { sum = sum + *(p+i); } printf("aver = %d\n",sum/n); free(p); }
注意的是最后有个内存释放。还有就是因为堆空间是有限的,所以动态分配内存后,必须检查函数malloc()的返回值,确保使用前不是NULL,即非空指针,任何空指针均意味着它不指向任何对象,不应该使用它。如果使用空指针则可能会导致程序瘫痪。
相关文章推荐
- 存储类、链接和内存管理
- 快速幂(简单详细)
- noip2012提高组模拟题樱桃庄园
- 《Accelerated C++中文版 通过示例进行编程实践》课后习题解答,第0章
- Lowest Common Ancestor of a Binary Search Tree
- TinyXML:一个优秀的C++ XML解析器
- C++创建线性链表,静态链表
- 刚写的C++关于重载+和<<运算…
- C++如何动态创建二维数组
- VS2013快捷键及技巧
- c++记录
- C++面试笔记--循环链表,队列,栈,堆
- checking whether the C++ compiler works... no
- 在一个已排序的数组中插入数据(c语言)
- 第14周项目2--两个成员的类模板(1)
- 贝叶斯分类c++实现
- 《21天学通C++》_5 2016.5.25
- C++实现插入排序
- 第十五周项目 阅读程序(6)
- 运算符的重载(复数的加减)