Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143

Ссылка на объект не указывает на экземпляр объекта при вставке массива

26.09.2014, 21:52. Показов 1836. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, многуважаемые форумчане!
Я совсем недавно начала изучать С#, и возникла такая проблема:
Нужно создать рваный массив, вывести его, затем после n-й строки вставить k строк и снова вывести.
Написала функцию ввода и вывода, все отлично работает.
Написала функцию вставки,вроде тоже работает, но при выводе выходит такое вот сообщение "Ссылка на объект не указывает на экземпляр объекта", И обращает мое внимание на функцию вывода
Собственно выглядит это вот так:

Прилагаю код функции вывода
C#
1
2
3
4
5
6
7
8
9
10
11
12
 static void show(int[][] x)
        {
            if (x == null)
                Console.WriteLine("Пустой массив");
            else
                for (int i = 0; i < x.Length; i++)
                {
                    for (int j = 0; j < x[i].Length; j++)
                        Console.Write(x[i][j] + " ");
                    Console.WriteLine();
                }
            Console.WriteLine();
и функцию вставки
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 static int[][] creatmas3(int[][] x)
        {
            int k; int n; 
            Random rand = new Random();
            int size = x.GetLength(0);
            //int size2 = x.GetLength(1);
            int[][] mas = new int[size][];
            Console.WriteLine("Введите кол-во вставляемых строк");
            k = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите строку, после кототой нужно вставить");
            n = Convert.ToInt32(Console.ReadLine());
            mas = new int[size+k][];
            for (int i = 0; i < size; i++)
            {
                if (i == n)
                {
                    for (int s = i; s < k; s++)
                    {
                        int col = rand.Next(1, 10);
                        mas[s] = new int[col];
                        for (int j = 0; j < col; j++)
                            mas[s][j] = rand.Next(0, 5);
                        i++;
                    }
                }
                else
                {
                    mas[i] = x[i];
                }
            }
            return mas;
        }
Подскажите, пожалуйста в чем дело, где у меня ошибка?
Буду очень признательна
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2014, 21:52
Ответы с готовыми решениями:

Ссылка на объект не указывает на экземпляр объекта при обращении к элементу массива
выдает ошыбку Ссылка на объект не указывает на экземпляр объекта. public string STRING; string keystr = &quot;Май Поэзия...

Ссылка на объект не указывает на экземпляр объекта при обращении к элементу массива
Весь код можно не читать, привел на всякий случай, ошибка возникает там где выделено жирным. Возникает если я ввожу несколько сиволов...

Ссылка на объект не указывает на экземпляр объекта при отправке почты
Всем привет! Суть проблемы: Что делать?

4
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,246
26.09.2014, 21:54
вам же участок кода даже подсветили, у вас x[i]=null, а вы Length пытаетесь брать от него
0
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
26.09.2014, 23:23  [ТС]
Цитата Сообщение от Монфрид Посмотреть сообщение
вам же участок кода даже подсветили, у вас x[i]=null, а вы Length пытаетесь брать от него
В смысле?
x == null - это в условии, а сам вывод по веточке else.
и эта ошибка вылазит только при попытке вывести измененный массив, исходный выводит спокойно и без инцидентов
0
 Аватар для Lexeq
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
27.09.2014, 01:09
Лучший ответ Сообщение было отмечено Vashtanerada как решение

Решение

Цитата Сообщение от Монфрид Посмотреть сообщение
вас x[i]=null, а вы Length пытаетесь брать от него
Цитата Сообщение от Vashtanerada Посмотреть сообщение
x == null - это в условии
x == null и x[i]=null не одно и тоже.
Цитата Сообщение от Vashtanerada Посмотреть сообщение
ошибка вылазит только при попытке вывести измененный массив, исходный выводит спокойно и без инцидентов
Очевидно, ошибка в методе изменения массива. Вот исправленная версия:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        static int[][] creatmas3(int[][] x)
        {
            int k; int n;
            Random rand = new Random();
            int size = x.GetLength(0);
            Console.WriteLine("Введите кол-во вставляемых строк");
            k = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите строку, после кототой нужно вставить");
            n = Convert.ToInt32(Console.ReadLine());
            int[][] mas = new int[size + k][];
            //i2 - индекс для работы с новым массивом, так как после вставки строк индексы "рассинхронизируются".
            for (int i = 0, i2 = 0; i < size; i++, i2++)
            {
                if (i == n)
                {
                    for (int s = 0; s < k; s++)
                    {
                        int col = rand.Next(1, 10);
                        mas[i2] = new int[col];
                        for (int j = 0; j < col; j++)
                            mas[i2][j] = rand.Next(0, 5);
                        i2++;
                    }
                }
                mas[i2] = x[i];
            }
            return mas;
        }
1
2 / 2 / 1
Регистрация: 29.11.2012
Сообщений: 143
27.09.2014, 15:01  [ТС]
Lexeq Спасибо вам огромное
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2014, 15:01
Помогаю со студенческими работами здесь

Ссылка на объект не указывает на экземпляр объекта при работе с делегатами
Добрый вечер, уважаемые форумчане. При работе с делегатами столкнулся со следующей проблемой: NullReferenceException не обработано ...

Ссылка на объект не указывает на экземпляр объекта при работе с массивами
Доброго времени суток!Написал программу,но ругается, не понимаю почему:cry: Поясните что нужно сделать,пожалуйста!

Ссылка на объект не указывает на экземпляр объекта при добавлении в реестр
Не понимаю, в чем ошибка, подскажите пожалуйста! Пишет, что ссылка на объект не указывает на экземпляр объекта при добавлении в реестр! ...

Ошибка при разборе XML. Ссылка на объект не указывает на экземпляр объекта
Добрый день! Столкнулась со следующей проблемой: разбираю xml сообщение следующего вида: &lt;settings&gt; - &lt;row&gt; ...

Ссылка на объект не указывает на экземпляр объекта
Здравствуйте, ребят, помогите пожалуйста. Ошибка вылазит когда пытаюсь получить вторую схему столбца в таблице Datacomn private void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru