Lorsque je débogue le code suivant, strncpy
fonctionne bien mais dès que la boucle se termine, je vois que parent_var_names
pointe NULL/0xfdfdfddf
. Je suis perplexe!comportement étrange **/calloc
parent_var_names = (const char**)calloc(net->nodes[x]->num_parents, sizeof(const char*));
for(int i(1); i < net->nodes[x]->num_parents; ++i)
{
parent_var_names[i] = (const char*)malloc(strlen(rhs_arr[net->nodes[x]->markov_parents[i]]));
strncpy((char*)parent_var_names[i], (char*)rhs_arr[net->nodes[x]->markov_parents[i]], strlen(rhs_arr[net->nodes[x]->markov_parents[i]]));
}
C ou C++? Choisissez-en un. Et il vaut mieux ne pas être C++. – GManNickG
bien oui. c'est un compilateur C++. – jmgunn87
Etes-vous sûr que toutes vos chaînes rhs_arr [net-> nodes [x] -> markov_parents [i]] sont fermées à zéro? vos chaînes parent_var_names ne le seront pas. – MerickOWA