Как изменить глобально определенную переменную из функции в C - PullRequest
0 голосов
/ 01 января 2019

Я передаю структуру как переменную функции, эта функция принимает аргумент структуры.

, а затем я изменяю некоторые значения переданной структуры внутри функции, и я хочу изменить глобальныйпеременная, определенная под тем же именем.

struct Neuron{

double Center[3];
char name;
int xCor;
int yCor;

};

struct Neuron Q;
struct Neuron W;
struct Neuron E;
struct Neuron R;


void Winning_NEURON(struct Neuron K){
for(int i=0; i<3; i++){

   K.Center[i] =  K.Center[i]+(learningParam*(inputArray[i]-K.Center[i]));
}

Итак, если я передаю нейрону Q функции, данные вычисляются правильно, но значения нейрона Q не меняются, как я могу измениться глобально, а не только локально?

1 Ответ

0 голосов
/ 01 января 2019

Аргумент типа struct Neuron передается по значению, что означает, что функция получает копию структуры, оставляя оригинал без изменений.Для передачи по ссылке сделайте аргумент указателем (struct Neuron *) и передайте адрес вашего оригинала, например, &Q.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...