C/C++ Ready | Программирование
12.2K subscribers
701 photos
41 videos
335 links
Авторский канал по разработке на C и C++.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
Знали что, многие допускают ошибку при использовании оператора delete?

Сегодня как раз ее разберем. Распространенную ошибку в C++ при работе с операторами delete и delete[], она может привести к сбоям программы и утечкам памяти:

Операторы delete и delete[] предназначены для освобождения памяти, выделенной с помощью new и new[] соответственно. Часто можно столкнуться с ошибками, если перепутать эти операторы:
int* ptr = new int[5];  // Выделили память для массива
delete ptr; // Ошибка! Использован неправильный оператор


Для освобождения памяти, выделенной с помощью new[], нужно использовать delete[].

Правильное использование delete[]:
int* ptr = new int[5];  // Выделили память для массива
delete[] ptr; // Правильно освобождаем память


Другой распространенный случай — удаление одной и той же памяти дважды. Это может привести к неопределенному поведению:
int* ptr = new int[5];
delete[] ptr; // Освободили память
delete[] ptr; // Ошибка: память уже освобождена


Установить указатель в nullptr
После того как память освобождена, всегда обнуляйте указатель:
int* ptr = new int[5];
delete[] ptr;
ptr = nullptr; // Указатель больше не указывает на освобожденную память


🔥 Правильное использование этих операторов — ключ к предотвращению утечек памяти и ошибок в управлении памятью.

Всегда следите за тем, какой тип памяти вы освобождаете, и избегайте двойного удаления.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍13🤝4
👩‍💻 Рассмотрим создание системы отслеживания задач

В этом посте мы создадим систему отслеживания задач с использованием очереди с приоритетами.

- Создание структуры задачи
- Добавление задачи в очередь
- Выполнение задачи
- Основная программа


🔥 — если узнал новое
🤝 если уже пользовался

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26🤝7👍5
👩‍💻 Вспомним методы строк в плюсах

В этой шпаргалке мы рассмотрели методы работы со строками в C++, которые помогут вам при написании кода

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный сайт с разборами задач — PVS-Studio

Там собрано много крутых туториалов, котрые регулярно пополняются, они сделаны в интересном формате, который не позволит вам заснуть во время изучения

📌 Оставляю ссылочку: pvs-studio.com

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5🤝1
Что выведет консоль?
Anonymous Quiz
5%
A
37%
B
54%
C
4%
D
👍13🔥6
👩‍💻 Реализация копирования и перемещения

В C++ механизмы копирования и перемещения позволяют эффективно управлять ресурсами объектов, избегая избыточных копий и улучшая производительность при передаче объектов:

1. Конструктор копирования — создает новый объект, копируя данные из существующего:
MyClass(const MyClass& other) {
data = new int(*other.data);
// Копируем данные из другого объекта
}


2. Конструктор перемещения — передает владение ресурсом от одного объекта к другому, избегая копирования данных:
MyClass(MyClass&& other) noexcept : data(other.data) {
other.data = nullptr;
// После перемещения, объект other не имеет данных
}


3. Оператор присваивания (копирования) — переназначает ресурсы, освобождая старые данные и копируя новые:
MyClass& operator=(const MyClass& other) {
if (this != &other) {
// Проверка на самоприсваивание
delete data; // Освобождаем старые ресурсы
data = new int(*other.data); // Копируем данные
}
return *this;
}


📣 C++ Ready | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍8
👩‍💻 Делаю игру "Угадай число"

В этом посте я научу тебя создавать простую игру "Угадай число" на C++, полезно для новичков в программировании. В игре используется модуль рандом, скрипт разбит на несколько частей, что является хорошей практикой:

- Генерация случайного числа
- Ввод игрока
- Проверка ответа
- Завершение игры


📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7🤝4👎1