uint8_t ggg[3] = {0, 0, 0} - работает.
Но попытка изменить его
ggg = {1, 1, 1}; приводит к ошибке assigning to array from initializer list.
C/C++
Массив типа uint8_t. Как изменить в нем все значения разом?
#include <string.h>
...
memset(ggg, 1, sizeof(ggg));
...
memset(ggg, 1, sizeof(ggg));
Вячеслав Шкаликов
Это частный ответ. Вместо единицы могут быть любые числа.
Роман 12345
Это не за один раз - тут явный цикл :-)
В первом случае у вас агрегатная инициализация, во втором случае попытка присваивания списком инициализации. Инициализация выполняется в момент создания массива. В этот момент под массив выделяется память на стеке и не составляет труда скопировать в неё данные. При условии, что их количество не превышает размер массива. В дальнейшем присваивание невозможно.
Помимо агрегатной инициализации в С++11 введена возможность универсальной инициализации. Её синтаксис:
uint8_t box[3]{ 1, 2, 3 };
Инициализировать массив нулями теперь можно так:
uint8_t box[3]{};
Но если массив большого размера, то следует использовать динамический массив и инициализировать нулями через функцию memset, как было показано выше, только вместо 1, передать вторым параметром 0.
В STL в заголовочном файле <numeric> имеется алгоритм iota, с помощью которого можно заполнить массив порядковым целыми значениями начиная с заданного. Например,
int box[25]{};
std::iota(begin(box), end(box), 1); // получите массив, заполненный значениями от 1 до 25 включительно.
Алгоритм std::fill из заголовочного файла <algorithm> позволяет заполнить массив одинаковыми значениями:
int box[25]{};
std::fill(begin(box), end(box), 5); // получите 25 пятёрок
Ниже привожу пример как можно с использованием стандартного алгоритма std::for_each заполнить массив нечётными числами начиная с единицы.
Помимо агрегатной инициализации в С++11 введена возможность универсальной инициализации. Её синтаксис:
uint8_t box[3]{ 1, 2, 3 };
Инициализировать массив нулями теперь можно так:
uint8_t box[3]{};
Но если массив большого размера, то следует использовать динамический массив и инициализировать нулями через функцию memset, как было показано выше, только вместо 1, передать вторым параметром 0.
В STL в заголовочном файле <numeric> имеется алгоритм iota, с помощью которого можно заполнить массив порядковым целыми значениями начиная с заданного. Например,
int box[25]{};
std::iota(begin(box), end(box), 1); // получите массив, заполненный значениями от 1 до 25 включительно.
Алгоритм std::fill из заголовочного файла <algorithm> позволяет заполнить массив одинаковыми значениями:
int box[25]{};
std::fill(begin(box), end(box), 5); // получите 25 пятёрок
Ниже привожу пример как можно с использованием стандартного алгоритма std::for_each заполнить массив нечётными числами начиная с единицы.
#include
#include
using namespace std;
int main() {
int box[15]{};
auto n = 1;
auto fill_odd = [&n](int& x) { x = n; n += 2; };
for_each(begin(box), end(box), fill_odd);
for (auto x : box) cout
Раду Страту
https://otvet.mail.ru/question/230608662 помогите пожалуйста
Приведённый Вами способ возможен только при инициализации массива. У Вас остаётся два варианта:
1) Присвоить указатель на другую память
2) Построить union с целым четырёхбайтным
1) Присвоить указатель на другую память
2) Построить union с целым четырёхбайтным
тебе нужен std::array
#include
//...
std::array arr{ 36,36,36 };
arr = { 25, 28, 29 };
Похожие вопросы
- С++ | Как заменить макс. элементы (могут быть введены любые) массива на нули и вывести изменённый массив уже с нолями?!
- Сравнение элементов массива типа char с символом типа char
- Почему не меняется значения в массиве
- Задача на С Объявить массив данных типа double размером 3 на 3.
- Заменить нулями элементы массива, которые расположены между первым минимальным и последним максимальным элементами масси
- Помогите исправить и дописать программу с массивами на языке C++. Буду благодарен, т. к. самому уже не понятно.
- Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел
- Помогите пожалуйста - создать 4 массива на c++
- Нужна помощь в составлении одномерных массивов С++
- Помощь с Массивами C++