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

Ошибка выделения памяти... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Игра Сапер http://www.cyberforum.ru/cpp-beginners/thread7421.html
Я студент 2 го курса на курсовую дали игру сапер. Нужно связать правую кнопку мыши в ClassWizard для того чтобы ставить флажки на мины. Заранее спасибо. Ну если подкинете идеи для решения всей задачи буду очень признателен.
C++ Не хочет запускаться программа Поставил Visual Studio. Net. Пишу простейшую программу на C++, компилирую - удачно, пытаюсь запустить (F5), выскакивает ошибка... (см. вложение) В чем проблема???:help: http://www.cyberforum.ru/cpp-beginners/thread7401.html
нужна программа в С++ реализующая метод Гаусса C++
Ребят нужна программа в С++ реализующая метод Гаусса!Вот такое задание дали)
C++ О-О-ОЧЕНЬ ТРУДНАЯ ЗАДАЧКА
РЕБЯТА ПОМОГИТЕ!!!! Нужно решить задачку С++, она очень трудная...никто не может решить!на вас надежда! Я сейчас напишу условие,если кто сможет пришлите полное решение на axmetov_ilyas@mail.ru "Возьмем случайным образом p двузначных чисел.Возьмем случайным образом так же двузначное число s. Соединим эти p чисел между собой сложениями или вычитаниями.Все числа должны быть использованы. Можно...
C++ Алгоритм Брезенхема построения окружности на С++ http://www.cyberforum.ru/cpp-beginners/thread7345.html
помогите найти или написать программу алгоритм Брезенхема построения окружности на С++ для Borland 3.1 ПЛИЖ):huh::umnik:
C++ ООП перегрузка в классе! Помогите решить: Нужно сделать чтобы корректно работало следующее: 1. MyString s1("AAA"), s2; 2. s2="VVV"; С первым все ок, а второе глючит, вызывается каждый раз деструктор и ничего не заностися Вот конструктор: подробнее

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

Ошибка выделения памяти... - C++

17.04.2008, 09:54. Просмотров 2555. Ответов 19
Метки (Все метки)

Когда я пытаюсь выделить память двумерному динамическому массиву, возникает ошибка "Microsoft C++ exception: std::bad_alloc at memory location...". Вобщем суть того что я делал: Мне нужно считать 2 текстовых файла в кодировке ANCI, построчно их сравнить, ну и сделать ещё ряд действий, до которых я ещё не дошёл... Вобщем я создаю класс, который должен заниматься считыванием и разбиением. В нём есть 2 динамических массива символов (char). В первый массив записывается информация из файла, во второй (он 2 мерный) построчно переписывается текст из первого массива (в идеале). Под 1 массив память выделяется нормально, под второй, почемуто не может. Посмотрите, пожалуйста, код и скажите, где косяк:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#pragma once
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include "ObClassov.h"
 
class Text 
{
protected:
int Strok;
char *Full_Text;
int Kol_strok (char *Full_Text); 
public:
char *Razb_Text;
void Loading (char *File_Name);
void drobilka_texta (char *Full_Text, int &Strok, char *Razb_Text);
}
 
void Text::Loading (char *File_Name)
{ 
FILE *fp;
int index=0, Otv=0;
//Открытие файла с проверкой на открываемость
while ((fp=fopen (File_Name, "rt"))==NULL) 
{ 
printf ("\n [COLOR=darkred]Аблом! файл не открывается. 0- выход, 1 - продолжить: "); 
scanf ("%d", Otv);
if (Otv==0) return;
}
Full_Text = newchar [sizeof (fp)]; //Выделение памяти под базовый текст
while (feof (fp)==0) //Заполнение базового текста 
{
Full_Text[index]=fgetc (fp);
if (Full_Text[index] == '\0') break;
index++;
}
 
fclose (fp);
 
drobilka_texta (Full_Text, Strok, Razb_Text); //Вызов процедуры дробления текста}
 
void Text::drobilka_texta (char *Full_Text, int &Strok, char *Razb_Text)
{
int NStroki=0, Nach_Simvol = 0;
int NSimvola = 0, i;
int index;
//Выделение памяти под "разбитый" текст
Strok = Kol_strok (Full_Text);  //определение, сколько выделять
Razb_Text = newchar [Strok]; //выделение. Тут возникает ошибка :(
 
index = 0;
while (index <= strlen (Full_Text))
{
if (Full_Text[index] == '\n')
{
NSimvola = 0;
Razb_Text [NStroki] = newchar [index - Nach_Simvol];
for (i = Nach_Simvol; i < index; i++) 
{
Razb_Text [NStroki][NSimvola] = Full_Text[i];
NSimvola++;
}
NStroki++;
Nach_Simvol = index; 
}
index++;
}
 
int Text::Kol_strok (char *Full_Text)  //Определение кол-ва строк
{
int index = 0, Kol_strok = 0;
while ( index <= strlen (Full_Text) || Full_Text [index] == '\0') 
{
if (Full_Text [index] == '\n') Kol_strok++;
index++;
} 
return Kol_strok;
};
};
Зы: Прошу прощение за оформление, я пишу первый раз на подобном форуме.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru