J'ai écrit du code qui ressemble à ce qui suit. Je reçois une erreur de segmentation. Le débogueur montre que l'erreur vient de 'some_order'. J'ai vérifié les valeurs de la variable pour un exemple particulier. Prenez n = 26 : alors, Var = {0,...,25} ce qui signifie que u et v passés à 'some_order' doivent être dans la plage (0-25) mais j'obtiens une valeur élevée pour l'un d'eux comme 7785654 ou -1549259 (quelque chose comme ça). Je ne comprends pas pourquoi. L'erreur de segmentation est alors inévitable.
//TNT: template numeric toolkit
#include "tnt.h"
//contient les inclusions à tous les fichiers dans http://math.nist.gov/tnt/tnt_doxygen/files.html
//toutes les autres inclusions nécessaires à la STL et à la bibliothèque standard de C++ sont là
class global_data{
public:
static TNT::Matrix* Value_matrix;
};
TNT::Matrix* global_data::Value_matrix = NULL;
bool some_order(const int& u ,const int& v) {
return (*global_Data::Value_matrix)[v][u] == 0.0;
}
void some_function(int n){
std::vector Var(n);
for(int i=0; i(n,n,0.0) ;
//global_data::Value_matrix est ensuite rempli de valeurs
some_function(n);
delete[] global_data::Value_matrix
}