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

Показать сообщение отдельно
Alaraf
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 6
28.05.2011, 15:56     Ошибка "Access violation..." при попытке отсортировать структуру из файла быстрым методом
Собстно ошибко "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;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru