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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите с написанием модуля работы с видеоизображением http://www.cyberforum.ru/cpp-beginners/thread7437.html
deleted
C++ Алгоритм Брезенхема построения окружности на С++ помогите найти или написать программу алгоритм Брезенхема построения окружности на С++ для Borland 3.1 ПЛИЖ):huh::umnik: http://www.cyberforum.ru/cpp-beginners/thread7345.html
Определить количество вхождений символа в текст C (СИ)
необходимо ввести строку (это делает пользователь), потом символ и определить количество вхождений символа в текст. Смотрю по книге, но тут нет примера ввода строки, только как задать конкретную строку. Для подсчёта числа вхождений надо использовать функцию strchr. В книге это описано как "char *strchr (const char *s, int c)". Что указывать вместо 1-й и 2-й звёздочки? кроме этого пока...
C++ Конвертирование RGB в CIE Lab
Я нашёл как конвертировать rgb в lab. Сначала конвертирую rgb в xyz, а потом xyz в lab. Всегда когда я конвертирую у меня получается, что l != 0, a = 0, b = 0. Может ли быть такое? Вот исходники: Я наткнулся на сайте http://www.easyrgb.com/math.php?MATH=M2 как конвертировать. Вот оттуда пример Это RGB -> XYZ var_R = ( R / 255 ) //Where R = 0 ч 255 var_G = ( G / 255 ) //Where G...
C++ GNU в Windows http://www.cyberforum.ru/cpp-beginners/thread7289.html
Всем привет! Подскажите как можно собирать (скомпилировать) библиотеки gnu в windows. Последние три часа бьюсь с libgcrypt . В readme нашел такое: To build libgcrypt for Microsoft Windows, you need to have the mingw32 cross-building toolchain installed. Instead of running a plain configure you use
C++ Организация авторизации в домене, клиент-сервер-домен-авторизация Здравствуйте. Передо мной стоит следующая задача: нужно написать клиент-сервер, с возможностью авторизации клиента "tr" на сервере "tr" используя windows аутентификацию: 1) используя текущий логин и пароль (если компьютер входит в тот домен, в котором работает "tr" сервер) и 2) используя вводимые пользователем логин, пароль и домен (если машина не входит в данный домен). Аналогичная авторизации... подробнее

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

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

17.04.2008, 09:54. Просмотров 2519. Ответов 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;
};
};
Зы: Прошу прощение за оформление, я пишу первый раз на подобном форуме.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru