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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
👩‍💻 Изучим умные указатели!

В этом посте мы рассмотрели основные типы умных указателей в C++. Вот эти три:

- Указатель std::unique_ptr
- Указатель std::shared_ptr
- Указатель std::weak_ptr


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍7🤝6
👩‍💻 CS50 на русском (Гарвардский курс по основам программирования)

Переведённые на русский язык лекции топового Гарвардского курса CS50 по основам программирования. Курс охватывает ключевые концепции информатики, такие как алгоритмы, структуры данных, веб-разработка и многое другое.

Ссылка на плейлист: YouTube 🖤


📣 C++ Ready | #курс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍6🤝2👎1
👩‍💻 Ссылки и указатели: Что к чему?

1. Указатели: Где живут данные
— это такие "хитрые" переменные, которые хранят не данные, а адреса других переменных:
int x = 10;
int* ptr = &a; // ptr хранит адрес переменной a


2. Ссылки: Удобные "алиасы" — нечто вроде альтернативных имён для переменных. Позволяют обращаться к одной и той же переменной под разными именами:
int& ref = x; // ref — это просто другое имя для переменной x


3. Указатели против ссылок — Вот в чём интересная штука: указатели могут быть неинициализированными или "нулевыми", что указывает на отсутствие адреса.

А вот ссылки такого себе позволить не могут. Ссылку обязательно нужно сразу инициализировать и после этого она не может быть переназначена на что-то другое:
int* ptr2 = nullptr; // указатель может быть пустым
// int& ref2; // ошибка, ссылку нельзя оставить неинициализированной


4. Указатели и ссылки в функциях —когда вы передаёте аргументы в функции, указатели и ссылки позволяют не копировать переменные, а передавать их адреса или алиасы:
void increment(int* ptr) {
(*ptr)++; // изменение значения по указателю
}
increment(&a); // передаём адрес переменной a


📣 C++ Ready | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍6🤝3
📖 Контролируемый взлом

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

Автор: Юрий Другач
Год: 2024


⬇️ Скачать книгу

📣 C++ Ready | #книга
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1👎1
👩‍💻 Давайте рассмотрим шаблоны!

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

- Шаблон для нахождения максимума
- Шаблон класса для контейнера
- Шаблон с несколькими параметрами


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29🤝12👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Посоветую вам очередную интересную платформу — Codingame

Здесь собрано много крутых заданий, которые вы будете решать, играя в игру, так можно провести время весело и с пользой

📌 Ссылочка: codingame.com

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3🤝2
Что будет в консоли?
Anonymous Quiz
53%
A
26%
B
5%
C
17%
D
👍12🔥3
Знали что, многие допускают ошибку при использовании оператора 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