Salut,

Aujourd'hui en faisant un petit cout, j'ai eu un segmentation fault que j'ai beaucoup de mal à comprendre.

En gros ce que j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
float load_avg[3];
float shiftfloat = (float)(1<<SI_LOAD_SHIFT);
struct sysinfo  the_info;
sysinfo(&the_info);
 
load_avg[0] = ((float)the_info.loads[0]) / shiftfloat;
load_avg[1] = ((float)the_info.loads[1]) / shiftfloat;
load_avg[2] = ((float)the_info.loads[2]) / shiftfloat;
 
cout << "load_1:" << load_avg[0] << "\nload_5:" <<  load_avg[1] << "\nload_15:" <<  load_avg[2] << "\n";
Ce cout produit une Segmentation Fault. Je ne comprends pas du tout pourquoi mais si je ne passe pas par un tableau, le problème ne se pose pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
float a, b, c;
 
a = ((float)the_info.loads[0]) / shiftfloat;
b = ((float)the_info.loads[1]) / shiftfloat;
c = ((float)the_info.loads[2]) / shiftfloat;
 
cout << "load_1:" << a << "\nload_5:" <<  b << "\nload_15:" <<  c << "\n";
Note : Ce problème ne se pose pas sur toutes les machines, mais s'il arrive, c'est en permanence.

Bref, je voulais savoir si quelqu'un avait une explication concernant ceci ? ^^

Merci.