第10章 C语言及程序设计提高例程-39 动态存储管理与动态数组的实现

来源:互联网 发布:什么软件有烟雾 编辑:程序博客网 时间:2024/04/28 20:31

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;}    


0 0
原创粉丝点击