void Test(struct NeuralNetwork *nn) {
printf("%f", nn->layers[1].neurons[0].internalValue);
}
Позже:
int inputs = 2;
int hiddenLayers = 3;
int outputs = 1;
struct NeuralNetwork* nn = NeuralNetwork( inputs, hiddenLayers, outputs);
printf("%f", nn->layers[1].neurons[0].internalValue); // prints correctly
Test(&nn); //access violation even tho im trying same print as above
printf печатает 9.0, что я и инициализировал в функции «NeuralNetwork ()», которая возвращает указатель NeuralNetwork *, поэтому он работает правильно.
Когда я вызываю Test, я получаю ошибку нарушения прав доступа для чтения при попытке прочитать internalValue (0x9999999A).
В функции NeuralNetwork (конструктор в основном) я также делаю
nn->layers[1].neurons[0].internalValue = 9;
прямо перед "return nn;" что также печатает printf.
Я могу получить доступ и отредактировать все значения в функции NeuralNetwork () (которая распределяет память и инициализирует все значения, затем возвращает NeuralNetwork *), и я также могу редактировать и читать данные nn (как отображается printf), которые назначены из возвращения NeuralNetwork ().
Проблемы возникают только тогда, когда я передаю их функциям.