2017-10-15 21 views
0

没有语法错误,但我想知道如果这个程序24/7运行将操作系统过载?以及如何测试内存?我的意思是有多少未使用的变量?我在Visual Studio中编写了这个代码,可能会有一些变化。我想知道如果这个程序24/7运行将操作系统超载?

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

我建议你移动'srand'了'while'循环的,虽然你在每个循环延时3秒,你可能不会立即注意到缺少随机性。 –

+0

“*以及如何测试内存*”简单的方法(不适合飞机等):让它运行一分钟,一小时,一天,一周,并定期查阅任务管理器有关程序过程的信息? – alk

+0

这可能是堆可能最终支离破碎 - 并注意你不'free'内存分配 –

回答

2

不,操作系统不会“超载”。

有一个在每次循环3秒的睡眠,很少有在每次迭代中去,所以CPU使用率是没有问题的。您没有超出任何内存边界,并且释放所有在使用后分配的内存,因此内存使用不成问题。

相关问题