Попытка избавиться от любого выделения памяти в кучеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Попытка избавиться от любого выделения памяти в куче

Сообщение Anonymous »


Я знаю, как это сделать с помощью динамической памяти, но стараюсь избавиться от выделения динамической памяти в своем коде.

Я не могу использовать какую-либо библиотеку, которая могла бы мне помочь, это означает, например: .

Как это сделать с помощью выделения памяти стека?

int main(void) { класс Животное { беззнаковый символ nameLength; имя беззнакового символа[]; setName(имя беззнакового символа[]) { memcpy(this->name, name, this->length * sizeof(unsigned char)); } } Животное-собака; // Значение '4' не является постоянным, оно зависит от полученных данных из сокета собака.имяДлина = 4; // Сейчас я знаю, сколько элементов будет в массиве Dog.name беззнаковый символ случайное имя[dog.nameLength]; // Здесь будет цикл for, но просто для примера: случайное имя[0] = "Б"; случайное имя[1] = "е"; случайное имя[2] = "n"; случайное имя[3] = "/0"; собака.setName(случайноеимя); // Ожидаемый результат: Dog.name = "Ben\0" } Цикл for будет выглядеть так:
беззнаковый символ i; for (i = 0; i < (dog.nameLength-1); i++) { случайное имя = пакет; } случайное имя[я] = 0;
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»