C 我想知道如果这个程序全天候运行,操作系统会过载吗?
没有语法错误,但我想知道如果这个程序全天候运行,操作系统会过载吗?如何测试记忆力?我的意思是有多少未使用的变量?我在VisualStudio中编写了这段代码,可能会有一些更改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
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
循环,尽管在每个循环,你可能不会立即注意到随机性的缺乏。“以及如何测试记忆”的简单方法(不适用于飞机等…):让它运行一分钟、一小时、一天、一周,并定期查阅任务管理器关于程序进程的信息?堆可能最终会支离破碎-请注意,您不会以分配的相反顺序释放内存。我看不出有任何理由每次都继续分配和释放相同的结构循环。相反,为什么不在循环外部分配它们一次,并在循环外部设置类别一次。在循环内部对它们唯一需要做的就是更改评级。删除后需要重新创建结构