Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
16 / 16 / 0
Регистрация: 20.03.2010
Сообщений: 85
1

Проблема с массивом строк

25.07.2012, 16:48. Просмотров 404. Ответов 6
Метки нет (Все метки)

Доброго времени суток! Есть класс, в котором объявлен массив строк
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class MyClass
{
public:
    MyClass();
    ~MyClass(void);
 
    bool Write(int i);
        void PutValue(int index, char* str);
    char **values;
 
};
MyClass::MyClass()
{
     values = new char* [MAX_VAL];
     for(int i=0; i<MAX_VAL; i++){ 
              values[i] = new char[MAX_SIZE];
         } 
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
void MyClass::PutValue(int index, char* str)
{
    values[index]=str;
    MessageBox(0, values[index],0,0);//здесь выводит строку корректно
 
}
 
bool MyClass::Write(int i)
{
    MessageBox(0, values[i], 0,0);//здесь выводит не строку, а "ММММММ"
    return true;
}
Почему такое происходит и как решить проблему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2012, 16:48
Ответы с готовыми решениями:

Неприятная проблема с массивом строк
Здравствуйте! Пытаюсь записать в массив строк содержимое директории.. Всё содержимое находит, но на...

Определить номера тех строк целочисленной матрицы A[N,K], которые совпадают с массивом D[K], если таких строк нет - выдать соответствующее сообщение
Неправильно определяет номера строк, либо вообще определяет строки не совпадающие с D. Не могу...

Проблема с массивом.
Приветствую,возникла некоторая проблема в решение данной задачи:Разделить массив на две части,...

проблема с массивом
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using namespace std; int main(){ ...

6
Эксперт С++
8291 / 6046 / 601
Регистрация: 10.12.2010
Сообщений: 28,124
Записей в блоге: 25
25.07.2012, 17:03 2
Ну не работайте char-ом если не знаете как с ним работать и если не такой необходимости в эффективности используйте std::string.

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
class MyClass
{
public:
    MyClass(){};
    MyClass(const size_t& max_val);
    ~MyClass(void);
 
    bool Write(int i);
    void PutValue(const size_t& index,const std::string& str);
 
private:
    std::vector<std::string> values;
};
//------------------------------------------------------------------------------------------------------------
MyClass::MyClass(const size_t& max_val)
{
  values.resize(max_val);  
}
//------------------------------------------------------------------------------------------------------------
void MyClass::PutValue(const size_t& index,const std::string& str)
{
    if( index >= values.size() ) return ;
    values[index]=str;
    MessageBoxA(0, values[index].c_str() ,0,0);
}
//------------------------------------------------------------------------------------------------------------ 
bool MyClass::Write(const size_t& index)
{
    if( index >= values.size() ) return 0;
    MessageBoxA(0, values[i].c_str(), 0,0);
    return true;
}
//------------------------------------------------------------------------------------------------------------
1
161 / 161 / 68
Регистрация: 23.02.2011
Сообщений: 392
25.07.2012, 17:14 3
C++
1
strcpy(values[index], str);
в 4-й строке второго листинга
1
16 / 16 / 0
Регистрация: 20.03.2010
Сообщений: 85
26.07.2012, 10:18  [ТС] 4
Avazart, Спасибо, помогло
edward_jonson, То же спасибо, но да же фигня со строкой
0
Эксперт С++
8291 / 6046 / 601
Регистрация: 10.12.2010
Сообщений: 28,124
Записей в блоге: 25
26.07.2012, 10:22 5
но да же фигня со строкой
Наверное где-то '\0' в конце строки нехватает.
0
16 / 16 / 0
Регистрация: 20.03.2010
Сообщений: 85
26.07.2012, 10:24  [ТС] 6
Хм.. Значит я правильно думал и был близок к цели)
0
Эксперт С++
8291 / 6046 / 601
Регистрация: 10.12.2010
Сообщений: 28,124
Записей в блоге: 25
26.07.2012, 12:49 7
Вообще-то далеко, так как
C++
1
values[index]=str;
Жесткая ошибка, говорящая о явном не понимании того с имеете дело.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2012, 12:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Проблема с массивом
Здравствуйте. Задача: умножение матрицы на число. Проблема: корректно выводятся только 2, 5, 6, 7,...

Проблема с динамическим массивом
Когда расширяется массив в первое поле первого элемента структуры вносятся изменения( появляются...

Проблема с динамическим массивом
Проблема с выводом массива. Как исправить? П.5.18.Правил Запрещено размещать задания и решения в...

Проблема с динамическим массивом С++
Есть задача: Дан Двумерный массив целых чисел. В каждой его строке найти: а) сумму отрицательных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.