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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 171, средняя оценка - 4.75
apomin
Сообщений: n/a
#1

Инициализация массива - C++

12.12.2008, 20:09. Просмотров 20913. Ответов 5
Метки нет (Все метки)

Нужно объявить несколько статических строк, содержащих байты со значениями в диапазоне от 1 до 255

Пытаюсь что-то в этом духе:

C++
1
2
3
4
5
6
unsigned char arrays[3][] = 
{
    {'A', 'B', 'C', 175, 216, 0},
    {'G', 'H', 168, 234, 0},
    {'K', 'L', 'M', 'N', 0},
};
но компилятор ругается
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2008, 20:09     Инициализация массива
Посмотрите здесь:

Инициализация массива объектов - C++
Уважаемые программисты, проясните ситуацию. Имеется класс CPt (точка), причем конструктор по умолчанию отсутствует. Объявление...

Инициализация массива строк - C++
Здравствуйте! Подскажите, как можно инициализировать массив строковых констант неопределенного размера? Для инициализации массива...

Инициализация Динамического массива - C++
Друзья просмотрите пожалуйста мой динамический массив правильно ли я его длясебястолковал #include<iostream> using namespace std; ...

Инициализация комплексного массива - C++
Подскажите как правильно проинициализировать элементы двухмерного комплексного массива. По заданию нужно чтобы с клавиатуры вводилась...

Инициализация массива до main() - C++
Здравствуйте. Необходимо задать массив до функции main() используя циклы. Как это можно сделать? При попытке использовать циклы сразу...

Инициализация char массива - C++
Мне нужно объявить и инициализировать массив char'ов. К примеру, char *m_words={'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}; ...

Инициализация динамического массива - C++
Народ, подскажите как сделать так что бы, можно было задать размер массива через консоль, а не в коде через const (Если можете - объясните,...

Инициализация массива в классе - C++
OS: WinXP Compiler: VC++ 6.0 Извиняюсь, заранее за глупый вопрос, но тем не менее: Есть класс: class Table{ public: ...

Инициализация массива в конструкторе - C++
Здравствуйте, я хотел бы узнать, возможна ли инициализация массива в конструкторе без использования циклов? Вот пример конструктора ...

Инициализация массива интервалом - C++
Доброго времени суток! Подскажите пожалуйста, как присвоить массиву интервал значений (диапазон) Например: int array1 = {100...1000}. В...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
12.12.2008, 21:58     Инициализация массива #2
Либо
Код
unsigned char arrays[][6] =
{
{'A', 'B', 'C', 175, 216, 0},
{'G', 'H', 168, 234, 0},
{'K', 'L', 'M', 'N', 0},
};
либо
Код
unsigned char arrays[3][6] =
{
{'A', 'B', 'C', 175, 216, 0},
{'G', 'H', 168, 234, 0},
{'K', 'L', 'M', 'N', 0},
};
Неопределенной может быть только первая размерность массива. Либо все должны быть определены.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.12.2008, 22:21     Инициализация массива #3
все строки должны иметь одинаковую длину, а т.к. ложатся они друг за другом, то добавлять их можно сколько угодно
apomin
Сообщений: n/a
13.12.2008, 03:05     Инициализация массива #4
Я не совсем точно спросил
Загвоздка вот какая:

Допустим, создаётся массив строк:
C++
1
2
3
4
5
6
unsigned char *arrays[3] = 
{
    "aaaa",
    "ff",
    "",
};
Строк точно три, это задано, а вот длина у каждой - разная.
Мне нужно в строках помимо букв указывать любые символы от 1 до 255
Желательно для удобства чтения в десятичном виде, но в крайнем случае пойдёт и в шестнадцатеричном. Забыл, как это делается.

пишу "aaaa0x255" - это воспринимается как строка с символами '0', 'x', и т.д., а нужно, чтобы в строку вставился один байт с кодом 255

Думал представить строки массивом байтов, но тоже не проходит.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.12.2008, 12:35     Инициализация массива #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
/* кодирует Hello, world! */
main()
{
    unsigned char *array[] = {
        "\x48\x65\x6C\x6C\x6F",
        "\167\157\162\154\144"
    };
    printf("%s, %s!\n", array[0], array[1]);
    return 0;
}
apomin
Сообщений: n/a
14.12.2008, 12:28     Инициализация массива #6
супер!
то, что нужно
Yandex
Объявления
14.12.2008, 12:28     Инициализация массива
Ответ Создать тему
Опции темы

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