Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 13:38   #1
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию Невероятный баг с объявлением указателей.

Привожу частичку кода, где я объявляю переменные и указатели.
Код:
//Объявление переменных
short basicStep, low, high, k, f, fRange;
int *loss, *profit, **price, **time, ***xprice, ***xtime; //Результирующие переменные
unsigned int base, rows; //Вспомогательные переменные
//Основные counter'ы
unsigned int i, j, c;
//Строковые переменные
char *fileName;
char buf[100],*p;
int **xsize;//МАГИЯ
Так вот, если последнюю строчку, где написано "МАГИЯ" переместить в 3 строчку, ну или добавить в качестве перечисления во вторую, то программа так же компилируется, но сразу выдает ошибку и закрывается. Если же оставить все как есть, то работает без сбоев. Что самое ужасное, я просто объявил указатель - я им больше нигде в программе не пользуюсь.
Может быть вы встречались с подобной проблемой?
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 04.05.2009, 13:49   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Попробовал покомпилировать этот кусок. Кидал xsize во все места - все нормально.
Может, это потому, что программа не полная? Попробуйте и вы, что-ли )

А вообще, действительно похоже на магию ))
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 13:59   #3
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Что самое смешное, только из такой позиции, в которой стоит сейчас и компилируется. Может быть что-то подобное? Если я объявляю указатель в каком-то особом месте (в программе), то он начинает ссылаться на ячейку на которую нельзя. Или что-то в этом роде?
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 04.05.2009, 14:02   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Что самое смешное, только из такой позиции, в которой стоит сейчас и компилируется.
То есть? Так она компилируется или нет? )
А вы можете прикрепить exe-файлы (рабочий и тот, где ошибка выходит)? Можно и с исходником )
Просто хочется на это посмотреть )
Цитата:
Если я объявляю указатель в каком-то особом месте (в программе), то он начинает ссылаться на ячейку на которую нельзя. Или что-то в этом роде?
Что-то никогда о таком не слышал...
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 14:07   #5
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Дада! Сейчас через 5 минут. У меня это на другом компьютере, на котором я принципиально не ставю интернет.

http://www.onlinedisk.ru/file/133048/

Зазипованный файл. Когда разархивируете, перекиньте файлы 1, 2, 3 в папки "работающий вариант" и "неработающий вариант"

В первой строчке консолевского файла предлагается ввести количество файлов для анализа - число больше 3 не вводите, потому что фалов только 3 я прислал. Я пока не отслеживаю, что вводит пользователь.

Во втором вопросе просится ввести нижний уровень колебаний, который мы отслеживаем. Меньше 10 не вводите (+ должно быть кратно 5). Во третьем вопросе - верхний уровень колебаний цены - больше 1000 вводить бессмысленно. 4 вопрос - каким шагом мы хотим дойти от 10 до 1000. Я ввожу 10 - можете любой кратный 5.

Для каждого файла создается динамический массив цен и времени произведения сделки. **price, ** time. А также ***xprice, ***xtime - это движение цены кратное введенному шагу от 10 до 1000.

Но это все не важно, потому что ошибка один Бог знает в чем - в строчке, в котоорй я объявляю указатель.

Модератор: научись правкой пользоваться.
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott

Последний раз редактировалось MaTBeu; 05.05.2009 в 17:02.
Парсифаль вне форума Ответить с цитированием
Старый 04.05.2009, 14:34   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Что-то скачать не могу (
Файл небольшой. Прикрепите лучше сюда.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 14:43   #7
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Вот, так вроде должно скачаться
Вложения
Тип файла: zip sazary.zip (906.8 Кб, 11 просмотров)
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 04.05.2009, 15:12   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Результат работы нерабочего варианта ()
Код:
Enter the file range: 3
Enter the low search: 15
Enter the high search: 100
Enter the basic step: 10
The number of rows in file '1' is 128572
15 step : 24932 X-series elements validated.
25 step : 12455 X-series elements validated.
35 step : 6194 X-series elements validated.
45 step : 3564 X-series elements validated.
55 step : 2279 X-series elements validated.
65 step : 1627 X-series elements validated.
75 step : 1145 X-series elements validated.
85 step : 856 X-series elements validated.
95 step : 690 X-series elements validated.

The number of rows in file '2' is 185677
15 step : 40675 X-series elements validated.
25 step : 21715 X-series elements validated.
35 step : 11009 X-series elements validated.
45 step : 6344 X-series elements validated.
55 step : 3840 X-series elements validated.
65 step : 2640 X-series elements validated.
75 step : 1919 X-series elements validated.
85 step : 1470 X-series elements validated.
95 step : 1122 X-series elements validated.

The number of rows in file '3' is 187983
15 step : 43022 X-series elements validated.
25 step : 23283 X-series elements validated.
35 step : 11962 X-series elements validated.
45 step : 6754 X-series elements validated.
55 step : 4251 X-series elements validated.
65 step : 2961 X-series elements validated.
75 step : 2141 X-series elements validated.
85 step : 1625 X-series elements validated.
95 step : 1257 X-series elements validated.
А вот рабочий выдал ошибку.

Посмотрел исходники - у вас там xsize стоит на одном и том же месте )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 15:30   #9
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

Блин)
В рабочем варианте надо xsize передвинуть на место после остальных переменных. Как в первом посте.

Эмммм.... Вот на ноутбуке у меня не работает ни один из ехе'шников...
Поробуйте у себя скомпилировать неработающий вариант и запустить его, и работающий вариант (просто передвинув объявление xsize после остальных переменных). Результаты будут разными. Хотя программы идентичны..

Что за полтергейст?

Неужели здесь замешал Дункан Камерон?
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott
Парсифаль вне форума Ответить с цитированием
Старый 04.05.2009, 15:41   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Действительно.. Скомпилил. Один работает, другой выдает ошибку.
Что-то тут нечисто.

Заметил, что у вас тут:
Код:
 //Подсчет количества строк в файлах
    rows = -1;
Переменной типа unsigned int присваивается -1
При том, если я правильно понял, нужно присваивать 0.

Цитата:
Неужели здесь замешал Дункан Камерон?
Скорее Девид Блэйн )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
О сущности указателей... Alexcomeback Общие вопросы C/C++ 6 03.04.2009 19:17
массив указателей на методы класса? cout Общие вопросы C/C++ 2 08.05.2008 09:43
Массив указателей на структуры SNAKE89 Общие вопросы C/C++ 4 27.12.2007 10:14
Инициализация массива указателей. Непонятно !!! Adamant Общие вопросы C/C++ 2 05.11.2007 16:22