Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 19:28   #1
das Ma:dchen
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 12
По умолчанию Массив типа char *

Почему-то выдает ошибку:
"Project handwritten_text.exe raised exception class EAccessViolation with message 'Access violation at
address 40006A2F in module 'rtl60.bpl'. Read of address 00000032'. Process stopped. Use Step or Run to
continue."
Помогите пожалуйста!

вот код.
Unit2.cpp
Код:
void __fastcall TForm2::Button2Click(TObject *Sender)
{
int CH = 0;
AS_str = Memo1->Lines->CommaText;
C_str = AS_str.c_str();

int len = strlen(C_str), F_i = 0;

    for(int j = 0; j<len ;CH++)
    {

        if(!C_str[CH]) break;
        if(C_str[CH] == ',')
        {
            F_i++;
            continue;
        }
        if(F_i == 5) break;
        fonts_1[F_i] = fonts_1[F_i] + C_str[CH];

    }
ShowMessage(fonts_1[1]);
Form2->Close();
}
Unit2.h
Код:
class TForm2 : public TForm
{
__published:	// IDE-managed Components
    TButton *Button1;
    TButton *Button2;
    TMemo *Memo1;
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall Button2Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
    __fastcall TForm2(TComponent* Owner);
    AnsiString AS_str;
    char *C_str;
    char *fonts_1[5];
};
das Ma:dchen вне форума Ответить с цитированием
Старый 12.06.2010, 19:41   #2
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Вот исправил, то что бросилось сразу в глаза.
Код:
void __fastcall TForm2::Button2Click(TObject *Sender)
{
.............

    for(int j = 0; j<len ;j++)
    {

        if(!C_str[j]) break;
        if(C_str[j] == ',')
        {
            F_i++;
            continue;
        }
        if(F_i == 5) break;
        fonts_1[F_i] = fonts_1[F_i] + C_str[j];

    }
.................
}
profi вне форума Ответить с цитированием
Старый 12.06.2010, 21:30   #3
das Ma:dchen
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 12
По умолчанию

Спасибо, исправила. Но эту ошибку он всеравно выдает.
das Ma:dchen вне форума Ответить с цитированием
Старый 13.06.2010, 07:23   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Read of address 00000032
Неправильный указатель, несозданный объект, невыделенная память.... ищите у себя.
p51x вне форума Ответить с цитированием
Старый 13.06.2010, 10:39   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
if(F_i == 5) break;
Может тут лучше:
Код:
if(F_i >= 5) break;
А вообще код странный. Что за задача?
pu4koff вне форума Ответить с цитированием
Старый 13.06.2010, 14:22   #6
das Ma:dchen
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 12
По умолчанию

мне надо, чтобы каждая строка мемо заносилась в отдельный элемент массива.
das Ma:dchen вне форума Ответить с цитированием
Старый 13.06.2010, 14:43   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

А чем не устраивает Memo->Lines? Практически тот же массив строк.
pu4koff вне форума Ответить с цитированием
Старый 13.06.2010, 16:54   #8
das Ma:dchen
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 12
По умолчанию

А как обращаться к конкретной строке? К третей или четвертой, например
das Ma:dchen вне форума Ответить с цитированием
Старый 13.06.2010, 16:59   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Memo->Lines[0]
Memo->Lines[1]
Memo->Lines[2]
...
pu4koff вне форума Ответить с цитированием
Старый 13.06.2010, 17:21   #10
das Ma:dchen
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 12
По умолчанию

оказывается все так просто! Спасибо!
das Ma:dchen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменная типа Char Sarumjan Общие вопросы C/C++ 4 10.01.2010 00:34
С++.Чтение из файла - проблема с массивом типа char. AgIon Общие вопросы C/C++ 4 07.12.2009 00:39
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35
Динамический сивольный массив типа char z3rg Общие вопросы C/C++ 12 05.04.2009 21:00
Работа со строками типа Char Horror Общие вопросы C/C++ 4 02.02.2008 19:45