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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.71
Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
#1

Инициализация массива char'ов в структуре - C++

24.04.2011, 23:21. Просмотров 3882. Ответов 2
Метки нет (Все метки)

Вот создал такую структуру
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct ubs
{
        //Конструктор с параметрами по умолчанию
        ubs(
                char name_[30]="",
                char mode_=0,
                std::string okr_=""
             )
            //инициализация полей структуры значениями
            :name(name_),
            mode(mode_),
            okr(okr_)
        {
        }
        //Поля структуры..
        char name[30];
        char mode;
        std::string okr;
};
Всё работает, int, char, string. Добавляю массив чаров, сразу перестаёт работать. Выдаёт:
incompatible types in assignment of ‘char*’ to ‘char [30]’
Как правильно инициализировать массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2011, 23:21     Инициализация массива char'ов в структуре
Посмотрите здесь:
Инициализация char массива C++
C++ инициализация массива char в конструкторе
Инициализация в структуре C++
C++ Инициализация объектов в структуре
C++ Инициализация vector<char>
Инициализация char в классе C++
Инициализация char в конструкторе C++
C++ Инициализация *char в конструкторе
C++ Сравнение строки в структуре с переменной типа char
C++ Инициализация структур и не вывод строчки char*
C++ В чем отличие двумерного массива типа char от массива указателей на char?
C++ Ввод строки в структуре, заданной как char *str через scanf (ПОМОЩЬ)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
24.04.2011, 23:33     Инициализация массива char'ов в структуре #2
Как вы добавляете?
incompatible types in assignment of ‘char*’ to ‘char [30]’
Невозможно преобразовать указатель в объект.
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
25.04.2011, 00:42     Инициализация массива char'ов в структуре #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<string>
#include<cstring>
 
struct ubs{
    ubs(
        char name_[30]="www",
        char mode_=0,
        std::string okr_=""
        ): mode(mode_), okr(okr_){
            strcpy(name, name_);
        }
    char name[30];
    char mode;
    std::string okr;
}obj;
 
int main(){
    std::cout<<obj.name<<"\n";
    return 0;
}
Ответ Создать тему
Опции темы

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