求教C语言内存过剩的解决办法!! (c linux 线程释放内存空间)
首先我想说一下new和delete不是C语言里面的东西,那是C++里面的。还有就是for(int
i=0;i
#include
void
main()
{
int
a,
sum=0;
printf(“蠢配请输入学科数目:”);
scanf(“%d”,
&a);
int*
b
=
(int*)malloc(a*sizeof(int));
//动态分配内存空间
printf(“请输入学科数目:”);
int
i;
for(i=0;
i
i++)
{
scanf(“%d”,
&b);
sum
+=
b;
}
printf(“该学生总成绩:%d\n”,
sum);
free(b);
//释放分配的内存空间
}
解释:malloc函数用于分配内存空间,在这里您输入的为a个学科,所以要用到a个整数用来存储各科成绩,而每一个整数占用内存为sizeof(int),总共有a个整数猛散,所以分配a*sizeof(int)个字节的空间,程序运带知指行完毕之后需要释放分配的内存空间,用free()函数释放,否则程序退出会造成内存泄露。
谢谢采纳。
实际像这种数据库方面的
都不是直接定义数组的