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

Проверка освобождения памяти (new, delete) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблоны функций. Можно ли задать шаблон мэйна http://www.cyberforum.ru/cpp-beginners/thread1526733.html
Понятно что нельзя. В этом чудном участке кода, в мэйн вводимые данные кастятся к инту. Как это можно обойти?#include<iostream> using namespace std; template<typename T> void foo(void(*foo1)(T&,T&),T&a,T&b){ foo1(a,b); cout<<a<<" "<<b<<endl; T temp=a; a=b; b=temp; cout<<a<<" "<<b<<endl;
C++ Исправить код сортировки выбором Реализуйте алгоритм на языке Си, добавив в программу подсчет количества сравнений и перестановок, проведенных алгоритмом. Выполните полученную программу на случайных массивах размерности 100, 1000, 10000. Методом выбора.Проблема с написанием самой сортировки #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv) { // файл создается в текущей директории system("chcp... http://www.cyberforum.ru/cpp-beginners/thread1526727.html
C++ Разное имя переменной в цикле
Привет Всем. У меня возник такой вопрос. Во вложенных циклах мне необходимо инициализировать переменные, которые будут отличаться последними цифрами. То есть: for (int var1 = 0; var1 < 10; var1++) { for (int var2 = 0; var2 < 10; var2++)
Fread неправильно считывает файл C++
У меня есть файл вот его скрин в hex редакторе я пытаюсь считать первые 8 байт, вот код: fread(&formCk.ckID,4, 1, file_in); //formCk.ckID переменная типа char считывается первые 4 байта (46 4f 52 4d) fread(&formCk.ckSize, 4, 1, file_in);//formCk.ckSize переменная типа long считывается вторые 4 байта (02 62 ee fe) formCK.ckID = "FORM" - всё верно formCk.ckSize = 4277035522 - что не верно...
C++ По заданному количеству делителей числа требуется найти само это число http://www.cyberforum.ru/cpp-beginners/thread1526556.html
По заданному количеству делителей числа требуется найти само это число. Входные данные Во входном файле INPUT.TXT записано количество делителей D некоторого натурального числа N (1 <= D <= 5000). Выходные данные В выходной файл OUTPUT.TXT запишите число N. Если решений несколько, выведите наименьшее из них. Если решения нет, или наименьшее из решений превосходит...
C++ Ошибка в __asm вставке class Updater{ public: DWORD baseAddress; }; class System { public: подробнее

Показать сообщение отдельно
AlexVRud
442 / 152 / 38
Регистрация: 04.07.2014
Сообщений: 430
08.09.2015, 14:14     Проверка освобождения памяти (new, delete)
Цитата Сообщение от sion5 Посмотреть сообщение
Про умные указатели и memory sanitizer тоже обязательно почитаю для развития.
Про умные указатели ты читай прямо сейчас. Они для того и создавались, что бы удалять объекты автоматически.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <memory>
 
class Foo {
public:
    Foo() {
        std::cout << "Foo: constructor\n";
    };
    ~Foo() {
        std::cout << "Foo: destructor\n";
    };
};
 
class Bar {
public:
    Bar() : _foo(std::make_shared<Foo>())
    {
        std::cout << "Bar: default constructor\n";
    };
    Bar(std::shared_ptr<Foo> foo) : _foo(foo)
    {
        std::cout << "Bar: constructor(*Foo)\n";
    };
    ~Bar() {
        std::cout << "Bar: destructor\n";
    };
protected:
    std::shared_ptr<Foo> _foo;
};
 
 
int main() {
  std::shared_ptr<Bar> bar_1 = std::make_shared<Bar>();
 
  std::shared_ptr<Foo> foo_2 = std::make_shared<Foo>();
  std::shared_ptr<Bar> bar_2 = std::make_shared<Bar>(foo_2);
 
  return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru