C 我想知道如果这个程序全天候运行,操作系统会过载吗?

C 我想知道如果这个程序全天候运行,操作系统会过载吗?,c,data-structures,C,Data Structures,没有语法错误,但我想知道如果这个程序全天候运行,操作系统会过载吗?如何测试记忆力?我的意思是有多少未使用的变量?我在VisualStudio中编写了这段代码,可能会有一些更改 struct video{ char category[10]; long long int rating; }; int main(void){ srand((unsigned int)time(0)); while (1) { struct video* gaming

没有语法错误,但我想知道如果这个程序全天候运行,操作系统会过载吗?如何测试记忆力?我的意思是有多少未使用的变量?我在VisualStudio中编写了这段代码,可能会有一些更改

struct video{
    char category[10];
    long long int rating;
};

int main(void){
    srand((unsigned int)time(0));
    while (1) {
        struct video* gaming = (struct video*) malloc(sizeof(*gaming));
        struct video* music = (struct video*) malloc(sizeof(*music));
        struct video* vlog = (struct video*) malloc(sizeof(*vlog));

        strcpy_s(gaming->category, 7, "Gaming");
        strcpy_s(music->category, 6, "Music");
        strcpy_s(vlog->category, 5, "Vlog");

        gaming->rating = rand() % 10000000 + 1;
        music->rating = rand() % 10000000 + 1;
        vlog->rating = rand() % 10000000 + 1;

        printf("Category: %s Rating: %lld",gaming->category,gaming->rating);
        printf("Category: %s Rating: %lld",music->category,music->rating);
        printf("Category: %s Rating: %lld",vlog->category,vlog->rating);

        Sleep(3000);
        system("cls");

        free(gaming);
        free(music);
        free(vlog);
    }
}
不,操作系统不会“过载”

循环的每一次迭代都有3秒钟的睡眠时间,而且每次迭代都很少进行,所以CPU的使用不是问题。您没有超出任何内存限制,并且在使用后释放所有分配的内存,因此内存使用不是问题。

不,操作系统不会“过载”


循环的每一次迭代都有3秒钟的睡眠时间,而且每次迭代都很少进行,所以CPU的使用不是问题。您没有超出任何内存限制,并且在使用后释放所有分配的内存,因此内存使用不是问题。

我建议您将
srand
移出
while
循环,尽管在每个循环中延迟3秒,您可能不会立即注意到随机性的缺乏。“以及如何测试内存”简单方法(不适用于飞机等):让它运行一分钟、一小时、一天、一周,并定期查阅任务管理器关于程序进程的信息?堆可能最终会支离破碎-请注意,您不会以分配的相反顺序释放内存。我看不出有任何理由每次都继续分配和释放相同的结构循环。相反,为什么不在循环外分配它们一次,在循环外设置类别一次。在循环内对它们唯一需要做的就是更改评级。删除后您需要再次创建结构我建议您将
srand
移出
while
循环,尽管在每个循环,你可能不会立即注意到随机性的缺乏。“以及如何测试记忆”的简单方法(不适用于飞机等…):让它运行一分钟、一小时、一天、一周,并定期查阅任务管理器关于程序进程的信息?堆可能最终会支离破碎-请注意,您不会以分配的相反顺序释放内存。我看不出有任何理由每次都继续分配和释放相同的结构循环。相反,为什么不在循环外部分配它们一次,并在循环外部设置类别一次。在循环内部对它们唯一需要做的就是更改评级。删除后需要重新创建结构