[EDIT] Основная проблема заключалась в том, что пригодность моей эволюции возвращала одно и то же значение каждый раз после изменения некоторого значения int в float. Главное, что я перезапустил компьютер, и это удивительно сработало снова.Некоторые данные исчезают из-за указателя при вызове функции
Я вызываю функцию из своей основной, когда я отлаживаю код, переменные содержат данные, но в заголовке функции, когда я отлаживаю, мои данные теряются, а ссылка на память одинакова (я компиляции с Visual Studio 2013), это происходит только в некоторых переменных (вы можете проверить, какие из них в фотографии ниже)
int main(){
float resultados[NUMCROMOSOMAS][CANTIDADMEDICIONES];
int in[CANTIDADMEDICIONES][NUMVAR];
char gramaticas[NUMCROMOSOMAS][LONGITUDCADENA];
int mejorValorIndividuo[100];
char variableNames[NUMVAR + 1];
float fitness[NUMCROMOSOMAS];
char mejorindividuo[LONGITUDCADENA];
float medicionesObtenidas[NUMCROMOSOMAS][CANTIDADMEDICIONES];
int i,j;
(инициализация, некоторые из них являются соответствующими)
for (i = 0; i < NUMCROMOSOMAS; i++)
fitness[i] = 0.0;
for (i = 0; i < CANTIDADMEDICIONES; i++)
in[i][0] = i;
Да, это была двумерная матрица, использующая один столбец
А вот основной цикл моей программы
int curr = MAXINT;
i = 0;
while (isNotGoodEnough(curr)){
i++;
curr = generacion(poblacion, results, input, collectedData, gramaticas, mejorindividuo, variableNames, fitness);
}
return poblacion[0][0];
}
Заголовок моей функции заключается в следующем:
int generacion(int poblacion[NUMCROMOSOMAS][SIZECROMOSOMAS],
float resultados[NUMCROMOSOMAS][CANTIDADMEDICIONES],
int in[CANTIDADMEDICIONES][NUMVAR],
float valoresEsperados[NUMCROMOSOMAS][CANTIDADMEDICIONES],
char gramaticas[NUMCROMOSOMAS][LONGITUDCADENA],
char * mejorIndividuo,
char variableNames[NUMVAR],
float fitness[NUMCROMOSOMAS]){
Вот компилятор до вызывающего Вот правильный компилятор после звонка
Что я делаю неправильно?
Что именно вас озадачивает? –
Программа представляет собой грамматическую эволюцию, но удивительно, что моя пригодность всегда одинакова, что произошло, когда я изменил некоторые переменные, я изменил int precission.It стал двойным. – Kaostias
Я глубоко смущен, потому что после перезагрузки машины моя программа снова функционирует. Любые намеки? – Kaostias