Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с указателями  (Прочитано 4916 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ray
Интересующийся

by
Offline Offline

« : 20-02-2009 11:05 » 

По форуму поискал, но вроде того что нужно не нашел..
в общем..
Считываю построчно файл. Когда встречаю строку с нужным мне номером произвожу необходимые мне действия.
Вопрос мой заключается в том, как правильно объявить и выделить память для массива указателей на строку и работать с ней?
Пытаюсь сделать вот так:
Код:
char* Lines[MAX_LENGTH] = new char[sizeof(char*)*MAX_LENGTH];
Но на это компилятор ругается матом.
Знаю что здесь ошибка, но как сделать правильно... в общем торможу..
Засовывать строки в этот массив указателей тоже не знаю как правильно..

Подскажите.. как?
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 20-02-2009 11:11 » 

Дословно то, что ты пытаешься сделать: в правой части выделяешь память под массив символов, и потом присваиваешь указатель на этот массив указателю на массив указателей. Вообще, проинициализировать статический массив указателей так нельзя: левая часть просто не соответствует правой.

В С/C++ нет двумерных массивов. Поэтому если тебе нужен массив указателей на память, то отдельно создаёшь массив указателей, и потом отдельно по каждому указателю выделяешь память. В цикле. Или ты можешь работать с одним блоком, но тогда для нормальной адресации блок должен состоять из простых элементов, а не из массивов (завернуть строку в структуру или вовсе забить на char* и пользоваться std::string, если условия позволяют)
« Последнее редактирование: 20-02-2009 11:14 от Вад » Записан
Ray
Интересующийся

by
Offline Offline

« Ответ #2 : 20-02-2009 11:19 » 

Дело в том, что я хочу считать временно файл в память, например, удалить нужную строку, а затем назад записать все, но уже немного подправленное. Завернуть в структуру... тоже вариант.
Спасибо. Попробую -  отпишусь.
Записан
Ray
Интересующийся

by
Offline Offline

« Ответ #3 : 20-02-2009 11:56 » 

Обернул в структуру.Вроде заработало.Кривова-то конечно,но заработало.
Буду косяки отлавливать.
Тему не закрывайте, мало ли что Улыбаюсь
Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines