第10章 C语言及程序设计提高例程-39 动态存储管理与动态数组的实现
2016-06-02 16:12
519 查看
1、问题及代码:
/*动态存储空间管理示例*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p1,*p2,max;
p1 = (int *) malloc(sizeof(int));//sizeof(int)整数类型需要的大小
p2 = (int *) malloc(sizeof(int));//malloc()函数返回void*类型,表示为确定类型的指针
*p1 =100;
*p2 =10;
if(*p1 >*p2)
max = *p1;
else
max = *p2;
printf("max=%d\n",max);
free(p1);//释放内存空间
free(p2);
return 0;
}
2、问题及代码:
/*动态数组的实现*/
#include<stdio.h>
#include<malloc.h>
int main()
{
int *score;
int num,i,total=0;
float aver;
printf("小组共有学生多少名?");
scanf("%d",&num);
score = (int*)malloc(num*sizeof(int)); //用num乘字节数即为给score分配内存空间,C++没有(int*)来强制转换则它是错的
printf("请输入学生的成绩:\n");
for(i=0;i<num;i++)
{
scanf("%d",score+i);
total+=*(score+i);
}
aver=1.0*total/num; //aver为浮点型,所以给它乘一个1.0
printf("平均成绩:%5.2f",aver);
free(score);
return 0;
}
/*动态存储空间管理示例*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p1,*p2,max;
p1 = (int *) malloc(sizeof(int));//sizeof(int)整数类型需要的大小
p2 = (int *) malloc(sizeof(int));//malloc()函数返回void*类型,表示为确定类型的指针
*p1 =100;
*p2 =10;
if(*p1 >*p2)
max = *p1;
else
max = *p2;
printf("max=%d\n",max);
free(p1);//释放内存空间
free(p2);
return 0;
}
2、问题及代码:
/*动态数组的实现*/
#include<stdio.h>
#include<malloc.h>
int main()
{
int *score;
int num,i,total=0;
float aver;
printf("小组共有学生多少名?");
scanf("%d",&num);
score = (int*)malloc(num*sizeof(int)); //用num乘字节数即为给score分配内存空间,C++没有(int*)来强制转换则它是错的
printf("请输入学生的成绩:\n");
for(i=0;i<num;i++)
{
scanf("%d",score+i);
total+=*(score+i);
}
aver=1.0*total/num; //aver为浮点型,所以给它乘一个1.0
printf("平均成绩:%5.2f",aver);
free(score);
return 0;
}
相关文章推荐
- C/C++之define用法小结
- C++第七次实验-素数和回文
- [leetcode] 【链表】141. Linked List Cycle
- C语言inline详细讲解
- C++实验7—特殊三位数
- LeetCode 33. Search in Rotated Sorted Array
- C语言中空格,空字符,字符数组结束符的区别
- C语言之内存对齐浅谈
- Python与C++交互
- LeetCode 153. Find Minimum in Rotated Sorted Array
- 标准C++中的string类的用法总结
- c++ vector begin(),end(),rbegin(),rend()问题
- C语言实现字符串的查找和替换
- 第10周 C语言及程序设计提高例程-38 main函数的参数
- C++ 引用
- 链接库(血泪史)
- C++中auto型的详细解释
- 小范围排序(C++)
- C语言+SDL2 图形化编程
- C/C++程序员必须熟练应用的开源项目