关于动态分配内存控制内存曲线

语言C++,纯C语言也可以,malloc即可

代码如下:

#include<stdio.h>
#include<Windows.h>
#include<stdlib.h>
using namespace std;
typedef double ll;
int main() {
    for (int cycle = 0; cycle < 1000; cycle++) {
        const int X_size = 60000;//每次增长幅度 
        const int y_size = 4200;// 时间t 
        const int num_max = 5 * 1e5;
        double** p = new double* [y_size];
        for (int i = 0; i < y_size; i++) {
            int j = num_max;
            while (j--);
            p[i] = new double[X_size];
            j = num_max;
            while (j--);
            printf("%d\n", i);
        }
        printf("\n\n释放\n\n");
        for (int i = 0; i < y_size; i++) {
            int j = num_max;
            while (j--);
            delete[]p[i];
            j = num_max;
            while (j--);
            printf("%d\n", i);
        }
        delete[]p;

    }
    
    system("pause");
    return 0;
}

 看一看细节

 

为什么想到做这个,有什么意义吗

无意中发现下面的曲线:

 便想到用程序下实现上图。

自然想到C中的malloc--free和C++中的new--delete内存动态堆上分配。

同时,Dev C++和Visio Studio 中分配过多会导致程序异常中断,所以最后实现的图的坡度较小。

仅供娱乐


版权声明:本文为weixin_54010759原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。