Знаете ли вы, почему массив принимает значение другого массива?
Привет, я программирую небольшую игру, и теперь у меня есть проблема:
Целочисленный массив yourField[0][0] имеет значение 0
Целочисленный массив opponentsField[0][0] также имеет значение 0
строки и столбца равны 0
opponentsField[row][column - 13] = 2;
после этого кода значение opponentsField[0][0], конечно же, изменилось на 2. Но также Значение yourField[0] [0] изменилось на 2. Какая может быть причина для этого? Это действительно странно, и я понятия не имею, почему это происходит.
Спасибо за ответы!
Что я уже пробовал:
Я попытался посмотреть, что происходит с отладчиком.
Thomas Daniels
Как определяются поле оппонентов и ваше поле? Можете ли вы показать эти строки кода?
Peter Leow
Прочтите свой вопрос с точки зрения незнакомца. Вы в состоянии понять свой вопрос?
Richard MacCutchan
Скорее всего, это один и тот же массив. Вам нужно объявить их отдельно.
OnLearn
Я не делал этого так, как yourField = opponentsField;
У меня есть третий массив под названием field[][].
Затем я построил yourField такой: yourField[][]=массивов.копия(поле[][],10);
Я дал полю другие значения и построил поле противников одинаково.
Если я инициализирую массив с помощью copyOf (), то это не указатель на массив, не так ли?
Richard MacCutchan
Я все еще не понимаю, что ты делаешь. Пожалуйста, отредактируйте свой вопрос и покажите фактический код, чтобы мы могли ясно видеть последовательность событий.
OnLearn
код имеет длину более 500 строк, поэтому я не думаю, что вы хотите его изучать
Richard MacCutchan
Нет. Я этого не делаю, но если вы не можете определить, какие строки имеют отношение к проблеме, и просто разместите их, то мы больше ничего не можем сделать.