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

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

26.11.2012, 22:06. Просмотров 295. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2012, 22:06
Ответы с готовыми решениями:

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

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2012, 22:06

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

Падает программа
ошибки нет. предупреждения такого вида: warning C4996: 'strcat': This function...

Падает программа с opencv
Код #include &lt;cv.h&gt; #include &lt;highgui.h&gt; int main() { // задаём...


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

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

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