31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
|
1 | |
Исключение NullReferenceException07.07.2019, 22:56. Показов 1449. Ответов 17
Метки исключение (Все метки)
Добрый вечер! Всю голову сломал, не могу понять ошибку.
Каждый раз при попытке присвоить значение ячейке массива вылетает NullReferenceException (показано во вложении), и непонятно, почему это происходит. Массив инициализирован, у каждой из переменных есть своё значение. в чем может быть проблема?
0
|
07.07.2019, 22:56 | |
Ответы с готовыми решениями:
17
Класс Masif - исключение NullReferenceException Чтение из BinaryWriter. Исключение NullReferenceException При отладке выскакивает исключение NullReferenceException Непонятно из-за чего выбрасывается исключение NullReferenceException |
4 / 3 / 1
Регистрация: 07.11.2016
Сообщений: 36
|
|
07.07.2019, 23:04 | 2 |
Было бы легче вам помочь если бы вы скинули весь код.
Не понятно чему равняется ваша переменная tmp?
0
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
|||||||||||
07.07.2019, 23:06 [ТС] | 3 | ||||||||||
Совсем забыл про код, следующий до этого:
0
|
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
|
|
07.07.2019, 23:25 | 4 |
Массив trans у Вас где инициализируется? Я что то не нашел этого в Вашем коде...
1
|
4 / 3 / 1
Регистрация: 07.11.2016
Сообщений: 36
|
|
07.07.2019, 23:33 | 5 |
У вас стринговой переменной indexes не присвоено значения (ну или я слеп), а string - это ссылочный тип переменных, и если ей не присвоить значение она по умолчанию принимает значение null
Добавлено через 2 минуты trans он пытается инициализировать с помощью indexes но он пуст)))
1
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
|
07.07.2019, 23:56 [ТС] | 6 |
Да, действительно, как-то прозевал этот момент и даже не инициализировал массив. Странно, что компилятор выделил следующую за ошибочной строку и ругался на неё. Но его уже заметил и исправил, а теперь совсем впал в ступор.
Во вложении скриншот: массив 64x4, на нём вылетает исключение в виде ухода за границы. И теперь непонятно: почему при допустимых значениях переменных может случиться вылет?
0
|
4 / 3 / 1
Регистрация: 07.11.2016
Сообщений: 36
|
|
08.07.2019, 00:17 | 7 |
А каковы границы цикла?
Чему равно pow(n, p-1)?
0
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
||||||
08.07.2019, 00:28 [ТС] | 8 | |||||
My3oH4ik, массив задан [pow(n, p-1), n], что в данной задаче 64 и 4 соответственно, границы цикла от 0 до pow(n, p-1), что тоже в пределах допустимого.
0
|
4 / 3 / 1
Регистрация: 07.11.2016
Сообщений: 36
|
|
08.07.2019, 00:42 | 9 |
Из этой части кода который вы предоставили, сложно понять где и что не так. В части кода которые на скриншотах, вроде все хорошо, но это только потому, что мы не видим значения многих переменных, и то что выполняет например функция Candidate
Но если для вас это какой то супер секретный код, и вы не можете его предоставить для проверки, то может вам поспать? Отдохнуть, и может когда отдохните сами увидите ошибку?
0
|
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
|
||||||
08.07.2019, 06:20 | 10 | |||||
Где??? Если речь о строке
0
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
||||||||||||||||
08.07.2019, 19:50 [ТС] | 11 | |||||||||||||||
asn31337, My3oH4ik, я, наверное, не очень хорошо поступил, выкидывая код кусками, а не целиком и спрашивая совета.
Вот код основного класса:
Если просто запустить программу, то она отрабатывает неправильно, выкидывая кучу исключений (всегда разное количество, что было выяснено значением ex_counter). Если поставить точку останова на 41 строке класса Main, там где
0
|
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
|
|
09.07.2019, 13:18 | 12 |
Slepoyi, наверное, будет проще, если Вы выложите тут проект целиком, чтобы можно было скачать и запустить у себя. А то, если честно, очень лень разбираться в коде и пытаться найти причину)))
0
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
|
12.07.2019, 17:12 [ТС] | 13 |
asn31337, https://drive.google.com/file/... sp=sharing, залил на диск. Чтобы работал, вводите в n и р числа от 2 до 6, в текстбокс сигнатуры лучше ввести "01", нажать Инит и затем Дет.
0
|
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
|
|
14.07.2019, 12:54 | 14 |
Попробовал... Вроде, все нормально работает... Что то считает))) Не знаю насколько корректен результат, но, по крайней мере, с указанными Вами параметрами, исключений не возникает.
1
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
|
14.07.2019, 13:54 [ТС] | 15 |
asn31337, блин, вот тут третье число (которое 212) - это количество исключений. Там в классе Main если конструкцию try-catch закомментировать, то исключения будут видны явно.
0
|
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
|
|||||||||||
14.07.2019, 16:49 | 16 | ||||||||||
Аааа! ))) Я код не смотрел))) Просто запустил, смотрю - работает)))
Добавлено через 9 минут А исключение возникает по такой причине: Вот тут:
1
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
||||||
15.07.2019, 20:56 [ТС] | 17 | |||||
asn31337, ну как же, это не так. В 20 строчке присваивание есть.
Все исключения вылезают, если хотя бы два потока работают одновременно. Если всем им давать отрабатывать последовательно, то исключений нет. Потому в самом начале я и спросил, не напутал ли где с вызовом/созданием/еще чем. В целом, вопрос открыт и проблема не ясна.
0
|
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
|
|
16.07.2019, 13:31 | 18 |
Все может быть... Но, по крайней мере, когда я смотрел в отладчике в ту часть кода программа не заходила. Т.е. массив так и оставался с одним инициализированным элементом. Проверяйте логику программы.
1
|
16.07.2019, 13:31 | |
16.07.2019, 13:31 | |
Помогаю со студенческими работами здесь
18
При запуске программы ошибка Необработанное исключение типа "System.NullReferenceException" При попытке заполнить поле класса выбрасывается исключение "System.NullReferenceException" Выходит исключение System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." Необработанное исключение типа "System.NullReferenceException" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |