Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 6

Почему программа падает?

26.11.2012, 22:06. Показов 701. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Знаю, что что-то с динамической памятью (правда, ещё грешу на функцию fscanf), но так и не придумал, как исправить...

Заголовочный файл (kassapp.h)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef KASSAPP_H
#define KASSAPP_H
 
struct Tovar
{ 
  char* Name;
  char* EdIzm;
  int KolVo;
  int Price;
};
int Stoimost (int N, int P);
void Print(const Tovar*);
struct Check 
{
  int Sum;
  int Cash;
};
int Sdacha (int S, int C);
void PrintDateTime(); 
void Print(const Check*);    
#endif


Файл kassapp.cpp
Кликните здесь для просмотра всего текста
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
#include "kassapp.h"
#include <iostream>
#include <time.h>
using namespace std;
int Stoimost (int N, int P)
{ 
  return N*P; 
}
void Print(const Tovar* T)
{ 
  cout << T->Name << " " << T->KolVo << " " << T->EdIzm << " " << Stoimost(T->KolVo, T->Price) << " руб." << endl; 
}
int Sdacha(int S, int C)
{
  return C-S; 
}
void PrintDateTime()
{
  time_t t;
  tm * temp;
  time(&t);
  temp=localtime(&t);
  cout << temp->tm_mday << "." << temp->tm_mon + 1 << "." << temp->tm_year + 1900 << " " << temp->tm_hour << ":" << temp->tm_min << ":" << temp->tm_sec << endl;
}
void Print(const Check* C)
{
  cout << "Итого: " << C->Sum << endl;
  cout << "Наличные: " << C->Cash << endl;
  cout << "Сдача: " << Sdacha(C->Sum, C->Cash) << endl;
  PrintDateTime(); 
}


main.cpp
Кликните здесь для просмотра всего текста
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
#include "kassapp.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
  char stroka[50];
  int count=0;
  FILE *f;
  if(argc!=2)
  {
    cout << "Wrong format!" << endl;
    return -1;
  }
  f=fopen(argv[1],"r");
  if(!f)
    return -2;
  Tovar* TArr;  
  while(fgets(stroka,50,f))
    {
      count++;
      const int size = count;
      TArr = new Tovar[size];
    }
  for(int i=0;i<count;i++)
    {
      TArr[i].Name=new char[10];
      TArr[i].EdIzm=new char[3];
      fscanf(f,"%s %s %d %d",TArr[i].Name,TArr[i].EdIzm,TArr[i].KolVo,TArr[i].Price);
    }  
  fclose(f);
  cout << TArr[0].Name << " " << TArr[1].EdIzm << " " << TArr[3].KolVo << " " << TArr[2].Price << endl;
  for(int i=0;i<count;i++)
    {
      delete[]TArr[i].Name;
      delete[]TArr[i].EdIzm;
    }
  delete[]TArr;
  _getch();
  return 0;  
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.11.2012, 22:06
Ответы с готовыми решениями:

Почему падает программа?
Почему падает программа? Компилируется без ошибок, но при запуске аварийное завершение работы. #include &lt;iostream&gt; #include...

Динамический массив нулевого размера. Почему не падает программа?
char* p = new char; cout &lt;&lt; &amp;p &lt;&lt; endl; Странно, но всё работает. Хотя если зададим отрицательный размер массива char* p = new char;...

Почему программа падает при сортировке массивов больших размерностей
Добрый день! Подскажите почему прога крашится при размере массива 10000, при значении 1000 все прекрасно работает. #include...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2012, 22:06
Помогаю со студенческими работами здесь

Почему при изменении литерала const char* программа падает?
точнее литерала. ладно, если бы выходил за пределы

Почему программа "падает" на функции заполнения дерева?
Здравствуйте! У меня проблема с заполнением дерева. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; ...

Почему "падает" программа
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; void vvodMas(int x, int n); void ydalenie(int x, int n); void...

программа падает
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; class area{ public: virtual bool inside(int x, int y); }; class...

Падает программа
ошибки нет. предупреждения такого вида: warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru