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

Ошибка "Access violation..." при попытке отсортировать структуру из файла быстрым методом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Несколько простых задач... http://www.cyberforum.ru/cpp-beginners/thread306934.html
1. составить программу вывода 3-х значных десятичных цифр сумма которых делится на 3. #include "stdafx.h" #include <stdio.h> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { int main();
C++ нужно составить программу. Всем привет,люди знающие хорошо с++ помогите написать программу. С внешнего устройства (с клавиатуры, из файла) вводятся последовательно числа, количество которых велико и заранее неизвестно. Требуется сохранять и в процессе ввода каждого числа распечатывать не более m последних введенных чисел (в порядке их поступления). Сам пробывал,что-то вообще не получается. Заранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread306922.html
Обработка символьной информации C++
Добрый день. Форумчани, очень нужна помощь, вот задание:Распечатать в порядке, обатном алфавитному, все буквы, которые входят в текст не менее трех раз... Вот код: #include "iostream" #include "string" #include "conio.h" using namespace std; int main() { char* s1 = "eertyre";;// задаем первоначальную строку char* s2;// задаем строку, в которой будут входить лишь те буквы, которые...
Списки, динамическая память и указатели C++
11. Написать функцию numberstring( ) для подсчета числа строк в тексте. Напечатать это число. То есть нужно создать однонаправленный список, в который заносится построчно текст какой-либо уже имеющейся программы, вывести исходный список и число строк в этом списке Компилятор: Borland C++ вот методичка - http://www.ksu.ru/f6/k12/bin_files/-1-2-full!7.pdf
C++ Для каждого массива опpеделить номеp столбца с наибольшим количеством положительных элементов http://www.cyberforum.ru/cpp-beginners/thread306891.html
Помогите с решением!! Что надо вставить вместо ???, чтобы все работало? Даны вещественные массивы A, V. Для каждого массива опpеделить номеp столбца с наибольшим количеством положительных элементов. #include<iostream.h> #include<conio.h>
C++ Макросы Ребята помогите!Надо переделать все пож макросы.Но в литературе как -то всё обрывками написано.непонятно как целиком программу писать! вот напримет,было сказано - пишем в тексте программы MyInclude.cpp #include<iostream.h> #include<conio.h> #include<stdlib.h> #include<stdio.h> #include<math.h> подробнее

Показать сообщение отдельно
Alaraf
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 6

Ошибка "Access violation..." при попытке отсортировать структуру из файла быстрым методом - C++

28.05.2011, 15:56. Просмотров 738. Ответов 8
Метки (Все метки)

Собстно ошибко "Project '...' raised exception class EAccessViolation with message 'Access violation at address 00401464 Write of address 004040bc'. Process stopped. Use..."
Компилируется нормально, всё работает. Ошибка вылетает при выборе сортировки, подсвечивается строчка 19 "data [ j ] = temp;" Билдер вешается..

структура
C++
1
2
3
4
5
6
7
8
struct telephone
{
        char name[30];
        char adr[40];
        long int number;
};
 
struct telephone data;
сортировка

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
//-------------------------------------SORT-------------------------------------
 
void qs_struct ( struct telephone data [] , int left, int right )
{
 
   register int i, j;
   char *x;
   struct  telephone temp;
 
   i = left; j = right;
   x = data [( left+right ) / 2 ] .name;
 
   do {
     while (( strcmp ( data [ i ] .name,x ) < 0 ) && ( i < right )) i++;
     while (( strcmp ( data [ j ] .name,x ) > 0 ) && ( j > left )) j--;
     if ( i <= j ) {
       temp = data [ i ] ;
       data [ i ] = data [ j ];
       data [ j ] = temp;
       i++; j--;
     }
   } while ( i <= j ) ;
 
   if ( left < j ) qs_struct ( data, left, j ) ;
   if ( i < right ) qs_struct ( data, i, right ) ;
}
 
void quick_struct ( struct telephone data [] , int count )
{
   qs_struct ( data, 0 ,count- 1 ) ;
}
main
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
main()
{
 FILE *t,*f;
 char another,choice;
 char cname[30];
 long int n;
 long int recsize;
 int z;
 int i,j,a,m,fl,l;
 t=fopen("TELEPHONE.DAT","rb+");
 if(t==NULL)
 {
       t=fopen("TELEPHONE.DAT","wb+");
       if(t==NULL)
       {
         printf("Error, File can't open\n");
         getch();
         }
         }
 recsize=sizeof(data);
 while(1)
 {
   fflush(stdin);
   int p = Menu();
   switch(p)
...
 
case 7:
           rewind(t);
           quick_struct(&data,recsize);
           fflush(stdin);
           break;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru