求教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()函数释放,否则程序退出会造成内存泄露。

谢谢采纳。

实际像这种数据库方面的

都不是直接定义数组的


数据运维技术 » 求教C语言内存过剩的解决办法!! (c linux 线程释放内存空间)