Форум программистов, компьютерный форум CyberForum.ru

Передать значения из одного укахателя в другой - C++

Восстановить пароль Регистрация
 
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 20:57     Передать значения из одного укахателя в другой #1
И снова глупый вопрос по указателям! Их количество стремится к бесконечности.

Имеется функция, которая возвращает двумерный массив заданой ей величины. Почему-то программа не хочет записывать ее возвратное значение (она имеет тип bool**) в другую переменную того же типа. Если реально сделать так, чтобы ошибки из=за этого не возникало, подскажите, как; если нет, или проще переписать функцию по-другому, опять же, подскажите, как.

Заранее благодарю

Добавлено через 25 минут
Народ! Опечатка в названии темы не повод для игнорирования! Подскажите, пожалуйста, я ведь реально не понимаю!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
29.10.2012, 21:00     Передать значения из одного укахателя в другой #2

Не по теме:

Опечатка зачётная



Добавлено через 50 секунд
покажи код.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
29.10.2012, 21:01     Передать значения из одного укахателя в другой #3
код покажите. по тому, что вы написали не понятно, в чем там у вас проблема.
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 21:07  [ТС]     Передать значения из одного укахателя в другой #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool** count(bool** first, int n, int t);
 
bool** count(int n, int t){
    //функция, возвращающая bool**, там же я использовал bool*** (ф-ция возвращает последний элемент массива
}
int main(){
 //ля-ля-ля
        bool** result;
    result = new bool*[n-1];
    for(sch=0; sch<n; sch++)
        result[sch] = new bool[n-1];
    result = count(kvadrat, n, t);
        //после этого VS-дебаггер говорит, что в result'е записана ошибка
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
29.10.2012, 21:09     Передать значения из одного укахателя в другой #5
Цитата Сообщение от ikmik Посмотреть сообщение
result = new bool*[n-1];
почему n-1 ?
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 21:13  [ТС]     Передать значения из одного укахателя в другой #6
David Sylva, да, похоже, вы правы, надо ставить n
сути это не меняет, пишет "невозможно вычислить выражение"
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.10.2012, 21:19     Передать значения из одного укахателя в другой #7
Опять ересь какая-то, почему у функций сигнатуры не совпадают, и опять же, что ты хочешь сделать?
Хочешь чтобы помогли - кидай весь код, никакого kvadrat я у тебя в коде не вижу.
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 21:26  [ТС]     Передать значения из одного укахателя в другой #8
Во первых, квадрат у меня был в одной из тем до того, во-вторых сигнатурами я решил не грузить, в третьих, в остальном коде ошибок нет точно, в четвертых, код у меня строк в триста пятьдесят

Добавлено через 1 минуту
Это значит, тут ошибки нету, да?
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
29.10.2012, 21:30     Передать значения из одного укахателя в другой #9
есть как минимум утечка памяти.

C++
1
2
3
4
5
6
7
8
       bool** = new bool*[n-1];
       for(sch=0; sch<n; sch++)
        result[sch] = new bool[n-1];
      // понавыделяли кучу всякой памяти. result указывает на нее.
 
    result = count(kvadrat, n, t);
   // а теперь result указывает на что-то другое. то, что выделяли перед этим утекло.
   // тут происходит не глубокое копирование, а лишь копирование одного указателя.
нужны динамические массивы - используйте stl.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
29.10.2012, 21:31     Передать значения из одного укахателя в другой #10
Цитата Сообщение от ikmik Посмотреть сообщение
сути это не меняет
как-это не меняет сути, ты выходишь за пределы границ массива.

Цитата Сообщение от ikmik Посмотреть сообщение
Это значит, тут ошибки нету, да?
это значит, что пока ничего не понятно.
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 21:36  [ТС]     Передать значения из одного укахателя в другой #11
David Sylva, я не выхожу за пределы границ массива, мне дебаггер в значении переменной при отладке с точкой останова пишет, что под 0xfdfdfdfd у меня ошибка. В чем у меня дело-то я не могу понять
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.10.2012, 21:36     Передать значения из одного укахателя в другой #12
Во первых, квадрат у меня был в одной из тем до того, во-вторых сигнатурами я решил не грузить, в третьих, в остальном коде ошибок нет точно, в четвертых, код у меня строк в триста пятьдесят
Тут никто по темам не будет бегать чтобы твой код по кусочкам собрать ;-)
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 21:39  [ТС]     Передать значения из одного укахателя в другой #13
David Sylva, я не выхожу за пределы границ массива, мне дебаггер пишет при отладке с точкой останова, что под 0xfdfdfdfd (result) у меня ошибка, я не пойму, в чем дело.

Добавлено через 1 минуту
Герц, ну извините, просто мне казалось, что Вы мне тогда отвечали
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
29.10.2012, 21:42     Передать значения из одного укахателя в другой #14
Давно бы уже привел полный код и получил бы ответ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2012, 21:56     Передать значения из одного укахателя в другой
Еще ссылки по теме:

Глобальные переменные в winforms. Как передать массив из одного метода в другой C++
Переписать из одного массива в другой все элементы, значения которых больше -1.8 и меньше 2.7 C++
C++ Передать константу с одного файла в другой по ссылке

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

Или воспользуйтесь поиском по форуму:
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
29.10.2012, 21:56  [ТС]     Передать значения из одного укахателя в другой #15
Герц, Я не понимаю, зачем, если ошибка в этих строчках

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

Добавлено через 8 минут
Пардон, господа, понял свою ошибку и то, какой я был дурак. Впредь обязуюсь не быть таким упрямым и показывать код сразу. Виноват, как грится...
Функция возвращала не тот элемент массива, странно, что ошибка возникала только при чтении.

Виноват, виноват, виноват....
Yandex
Объявления
29.10.2012, 21:56     Передать значения из одного укахателя в другой
Ответ Создать тему
Опции темы

Текущее время: 11:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru