2017-10-15 5 views
0

Il n'y a pas d'erreurs de syntaxe mais je veux savoir si ce programme s'exécute 24/7 le système d'exploitation sera-t-il surchargé? Et comment tester la mémoire? Je veux dire combien de variables inutilisées sont là? J'ai écrit ce code en studio visuel et il peut y avoir quelques changements.Je veux savoir si ce programme s'exécute 24/7 le système d'exploitation sera-t-il surchargé?

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

Je vous suggère de déplacer 'srand' hors de la boucle while, bien que si vous retardez de 3 secondes dans chaque boucle, vous ne remarquerez pas immédiatement l'absence de caractère aléatoire. –

+0

"* Et comment tester la mémoire *" Approche simple (ne convient pas aux avions, etc ...): laisser tourner une minute, une heure, un jour, une semaine et consulter régulièrement les informations du gestionnaire de tâches sur le processus du programme ? – alk

+0

Il est possible que le tas puisse être fragmenté - et notez que vous ne libérez pas la mémoire dans l'ordre inverse de l'allocation –

Répondre

2

Non, le système d'exploitation ne sera pas "surchargé".

Chaque itération de la boucle subit une pause de 3 secondes, et il y a très peu de temps à chaque itération, donc l'utilisation du processeur ne pose aucun problème. Vous ne dépassez pas les limites de mémoire, et vous libérez toute la mémoire que vous allouez après utilisation, donc l'utilisation de la mémoire n'est pas un problème.