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

В чем преимущества new и delete и могут ли они действительно заменить функции calloc, malloc, free, realloc? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конструктор со строкой - именем файла http://www.cyberforum.ru/cpp-beginners/thread1798599.html
есть класс вида class A { B b; /* ... */ }; а у класса B конструктор B(istream&), дефолтного нет если сделать у А конструктор такого же вида, то все хорошо A::A(istream& file) : b(file), /* ... */ {} а есть ли способ не описывая дефолтный конструктор у B изменить конструктор A, чтобы он принимал имя файла
C++ Подсчёт контрольной суммы Приветствую! Необходимо подсчитать 32-битную сумму для файла checksum = word1 + word2 + ... + wordN. Я недавно читал про little- и -big-endian. В связи с этим вопрос. Если я буду считывать данные из файла 32-битными словами, то на машинах с разным порядком следования байтов в слове, будет разный результат? Как этого избежать? http://www.cyberforum.ru/cpp-beginners/thread1798567.html
C++ Как реализовать систему захвата клавиш в MacOS?
Привет, форумчане! Подскажите как реализовать систему захвата клавиш? Хотябы стрелочки. Сижу на MacOS, пишу в среде XCode. Проблема такая, что пробовал с "switch(getch)" (или как-то так) не работает. Буду благодарен за любую помощь! Спасибо! Добавлено через 2 часа 49 минут Парни, выручайте! Добавлено через 2 часа 21 минуту Форум мертв? :D
Наследование. Очистка памяти в производном классе C++
Создаю базовый класс ParentClass, содержащий в качестве объекта массив (выделяется динамический массив в зависимости от указанного пользователем размера). Затем потомок DerivedClass. Вопрос: будет ли утечка памяти при работе с производным классом? Если вызывать в деструкторе деструктор родителя, то программа выдает ошибку. cla.h #pragma once #include <cstdlib> class ParentClass {...
C++ Непонятен синтаксис шаблонов из кода boost для вычисления факториала http://www.cyberforum.ru/cpp-beginners/thread1798524.html
Доброго дня, уважаемые форумчане. Просьба ответить на вопрос в чем смысл дивных конструкций из примера внизу. http://www.boost.org/doc/libs/1_48_0/libs/phoenix/example/factorial.cpp /*============================================================================= Copyright (c) 2001-2003 Joel de Guzman Distributed under the Boost Software License, Version 1.0. (See accompanying ...
C++ Написание програмы по полёту ракеты Очень надеюсь, что найдётся человек, которому не лень помочь. Просто я сильно провтыкался с дэдлайном в ВУЗе и сейчас в форсированом режиме делаю курсовую, так-как бедный студент приобрести не могу, но если появятся деньги могу отблагодарить за помощь. Курсовая довольно-таки обширная и програма это лишь малая часть, но с ней проблем у меня с головой, ведь языки програмирования знаю очень слабо,... подробнее

Показать сообщение отдельно
kokzahvas
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 65
27.08.2016, 07:25  [ТС]     В чем преимущества new и delete и могут ли они действительно заменить функции calloc, malloc, free, realloc?
Я исправил код. Строка «std::cin >> num0;» была не там, где ей надо быть.
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
40
41
42
43
44
#include <iostream>
    int main(int argc, char **argv)
    {
        // Использование статических переменных.
        int a0;
        int b0  = 5;
        a0 = 10;
        b0 = a0 + b0;
        // Использование статических массивов.
        int num0;
        std::cout << "Введите размер массива iarray0: ";
        std::cin >> num0;
        int iarray0[num0];
        for(int i = 0;i < num0; i++)
        {
            iarray0[i] = i;
        }
        for(int i = 0;i < num0; i++)
        {
            std::cout << "Значение элемента " << i << " массива iarray0 = " << *(iarray0 + i) << std::endl;
        }
        // Использование динамических переменных.
        int *a1 = new int;
        int *b1 = new int(5);
        *a1 = 10;
        *b1 = *a1 + *b1;
        delete a1;
        delete b1;
        // Использование динамических массивов.
        int num1;
        std::cout << "Введите размер массива iarray1: ";
        std::cin >> num1;
        int *iarray1 = new int[num1];
        for(int i = 0;i < num1; i++)
        {
            iarray1[i] = i;
        }
        for(int i = 0;i < num1; i++)
        {
            std::cout << "Значение элемента " << i << " массива iarray1 = " << iarray1[i] << std::endl;
        }
        delete[] iarray1;
        return 0;
    }
Добавлено через 10 минут
Цитата Сообщение от John Prick Посмотреть сообщение
Разница в области памяти, в которой эти переменные и массивы создаются. Это во-первых. А во-вторых, статические переменные объявляются с ключевым словом static. В примере таких нет. Откуда взялось это слово "объектные"?
А можно поподробнее про разницу в области памяти. Слово «статические» я использовал чтобы отделить переменные объявленные обычным способом от переменных созданных с помощью оператора new. Слово «объектные» я использовал по той же причине.

Добавлено через 7 минут
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Какие это?
AIDE например. Он на malloc ошибки.
 
Текущее время: 07:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru