Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 26
1

ЧТо это за ошибка ?

05.05.2011, 22:45. Просмотров 625. Ответов 9
Метки нет (Все метки)

http://i7.beon.ru/72/42/190427... odybg.jpeg

что с ней сделать и как убрать , при запуске программы ссылается на такую строчку
C++
1
CLIENT* c = FindClient( z->num_client = c->num);
Добавлено через 1 минуту
http://s1.ipicture.ru/Gallery/... 97531.html
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2011, 22:45
Ответы с готовыми решениями:

Это что за ошибка?
Обьясните что за ошибка, просто переместил папку с программмой, запустил в бильдере и вот что...

Объясните подробно данный код программы. Знаю что это фильтр а пошагово что к чему не понимаю
void __fastcall TForm1::suiButton7Click(TObject *Sender) { tdiag -> Filtered = false; tdiag ->...

Что означает это ошибка?
VS C++ 6. Что означет эта ошибка? я создаю элементарную программу, в которой не может быть ошибок,...

afx_msg: что это и зачем это?
Рассматриваю примеры по MFC, часть функций там переписываются с afx_msg, а часть без: BOOL...

9
Программист
118 / 96 / 11
Регистрация: 22.03.2011
Сообщений: 242
05.05.2011, 23:12 2
Это ошибка нарушения прав доступа. Вы читаете из страницы памяти, из которой читать нельзя.
Проверьте, правильно ли проинициализированна переменная c. Скорее всего (хотя и не гарантированно) проблема в ней...
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 26
05.05.2011, 23:18  [ТС] 3
Эта строка занимается найденным значением , а можно как то по другому её сделать чтобы не трогать права доступа
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
void TForm1::ShowZakazs()
{
   zakaz_lv->Items->BeginUpdate();
   zakaz_lv->Items->Clear();
 
   for(int i = 0; i < nzakazs; i++)
   {
      ZAKAZ* z = &zakazs[i];
      CLIENT* c = FindClient(z->num_client);
 
      if(c == NULL)
      {
         sprintf(buf, "Клиент с номером %d не найден!",
                  z->num_client);
         ShowMessage(buf);
         continue;
      }
 
      PICTURE* p = FindPicture(z->num_picture);
 
      if(p == NULL)
      {
         sprintf(buf, "Картина с номером %d не найдена!",
                  z->num_client);
         ShowMessage(buf);
         continue;
      }
 
      TListItem* item  = zakaz_lv->Items->Add();
      sprintf(buf, "%1d", zakazs[i].num_zakaz);
      item->Caption = buf;
      item->SubItems->Add(c->name);
      item->SubItems->Add(p->nazvanie);
      sprintf(buf, "%19d", zakazs[i].quant);
      item->SubItems->Add(buf);
      sprintf(buf, "%02d.%02d.%04d", z->dat.day, z->dat.month, z->dat.year);
      item->SubItems->Add(buf);
   }
 
     zakaz_lv->Items->EndUpdate();
}
 
void __fastcall TForm1::ZakazAddSave(TObject *Sender)
{
   ZAKAZ* z = &zakazs[nzakazs];
   sscanf(num_dost_zakaz_ed->Text.c_str(), "%d", &z->num_zakaz);
   TListItem* item  = zakaz_lv->Items->Add();
   sprintf(buf, "%d", z->num_zakaz);
   item->Caption = buf;
   CLIENT* c = FindClient( z->num_client = c->num);
  // z->num_client = c->num;
   PICTURE* p = FindPicture(z->num_picture = p->id);
 //  z->num_picture = p->id;
   sscanf(quant_zakaz_ed->Text.c_str(), "%d", &z->quant);
   sscanf(data_zakaz_ed->Text.c_str(), "%d. %d. %d",
          &z->dat.day, &z->dat.month, &z->dat.year);
   nzakazs++;
   zakaz_edit->Visible = false;
   ShowZakazs();
}
0
Программист
118 / 96 / 11
Регистрация: 22.03.2011
Сообщений: 242
05.05.2011, 23:26 4
Цитата Сообщение от Dan1993 Посмотреть сообщение
CLIENT* c = FindClient( z->num_client = c->num);
Смотрите: у вас в одном выражении и создание новой переменной c типа CLIENT и обращение же к ней.
Не исключен конфликт имен, хотя как компилятор пропускает этот код для меня, если честно, загадка. Если только в классе не определена переменная c. В любом случае не помешает переменной типа CLIENT дать другое имя...
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 26
06.05.2011, 00:00  [ТС] 5
Пишет что переменная не определена ((

Добавлено через 17 минут
Этой строчкой нужно добиться того чтобы она вводила номер из другой таблицы . Может можно заменить её аналогичной функцией?
0
Программист
118 / 96 / 11
Регистрация: 22.03.2011
Сообщений: 242
06.05.2011, 00:09 6
Смотрите: Вы в 52 строке вызываете c->num, но с в вашей функции TForm1::ZakazAddSave НЕ ОПРЕДЕЛЕНА!!! По этому и ошибка.

P.S. И в этой же функции какое-то непонятное присваивание ()
Цитата Сообщение от Dan1993 Посмотреть сообщение
z->num_client = c->num
Какой у вас прототип функции TForm1::ZakazAddSave?
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 26
06.05.2011, 00:23  [ТС] 7
CLIENT* c = &clients[(int)client_lv->Selected->Data];
я так понял что они эквиваленты
и в том и в этом случае -ошибка

я уже не понимаю как это исправить((

Добавлено через 49 секунд
А как может ZakazAddSave быть не определённой если это обработчик на кнопку)
0
Программист
118 / 96 / 11
Регистрация: 22.03.2011
Сообщений: 242
06.05.2011, 00:31 8
Я вам не писал, что ZakazAddSave не определена. Я вам писал, что переменная с, которая в 52 строке у вас используется (c->num) в вашей функции ZakazAddSave НЕ ОПРЕДЕЛЕНА!!!
Из за этого ошибка!!! Именно это вам пишет компилятор!!! Я понятно изъясняюсь?
Вы мне не ответили на мой вопрос: какой прототип у функции ZakazAddSave?
Цитата Сообщение от Dan1993 Посмотреть сообщение
я уже не понимаю как это исправить((
Разберитесь с этой строкой!!!
0
Модератор
Эксперт по электронике
8229 / 6096 / 814
Регистрация: 14.02.2011
Сообщений: 21,168
06.05.2011, 00:48 9
Цитата Сообщение от prZzZ Посмотреть сообщение
CLIENT* c = FindClient( z->num_client = c->num);
Смотрите: у вас в одном выражении и создание новой переменной c типа CLIENT и обращение же к ней.
Не исключен конфликт имен,
нет здесь конфликта
с уже описана (но не инициализирована )
т.е указывает в космос
а c->num соответственно дает ошибку
На лицо ошибка алгоритма
1 мы присваиваем значение
Цитата Сообщение от prZzZ Посмотреть сообщение
z->num_client = c->num
потом мы что то ищем
при помощи
Цитата Сообщение от prZzZ Посмотреть сообщение
FindClient( z->num_client = c->num);
и только потом инициализируем

Цитата Сообщение от prZzZ Посмотреть сообщение
CLIENT* c = FindClient( z->num_client = c->num);
Напиши словами что ты хотел сделать.

Цитата Сообщение от Dan1993 Посмотреть сообщение
CLIENT* c = &clients[(int)client_lv->Selected->Data];
а здесь лучше разбить по строкам и смотреть где ошибка
C++
1
2
int a =(int)client_lv->Selected->Data;
CLIENT* c = &clients[a];
Мне кажется в неправильном индексе

Добавлено через 2 минуты
Цитата Сообщение от Dan1993 Посмотреть сообщение
PICTURE* p = FindPicture(z->num_picture = p->id);
54 строка
тот же пердимоноколь

Добавлено через 2 минуты
Цитата Сообщение от Dan1993 Посмотреть сообщение
CLIENT* c = FindClient( z->num_client = c->num);
// z->num_client = c->num;
PICTURE* p = FindPicture(z->num_picture = p->id);
Зачем нужны эти переменные если они дальше не используются
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 26
06.05.2011, 08:27  [ТС] 10
Я хочу чтобы был найдено два значений , я для этого написал 2 функции Find , хочу чтобы в этом обработчике
C++
1
void __fastcall TForm1::ZakazAddSave(TObject *Sender)
был возможен ввод в Едит - полях информации ( номер клиента и заказа ) а потом уже эта информация отображалась в таблице вместе с другой инфой из других таблиц

Может мне скинуть прогу , помогите , там ошибка только в той строчке и всё ((

Добавлено через 1 минуту
Моя цель сделать так чтобы чётко совершался поиск в таблице по двум значениям можно было определить все остальные значения (
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2011, 08:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подскажите что делать. Знаю что надо перегрузить оператор но никак не могу понять как это сделать
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;Windows.h&gt; #include...

Как работать с LPCWSTR? Как перевести char в это? И что это вообще такое?
Как работать с LPCWSTR? Как перевести char в это? И что это вообще такое?

Что это за знак >> прочитал что это сдвиг вправо? что он делает
int d=6, c=5,f; f = d &gt;&gt; c; cout&lt;&lt; f; вывод 0

Что это за ошибка?
Что это за ошибка? Может кто сталкивался или знает, подскажите пожалуйста. 1&gt;------ Построение...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.