Вопросы по теме 'new-operator'

В каких случаях использовать malloc и / или new?
Я вижу, что в C ++ существует несколько способов выделения и освобождения данных, и я понимаю, что когда вы вызываете malloc , вы должны вызывать free , а когда вы используете оператор new , вы должны соединяться с delete , и смешивать их будет...
303725 просмотров

выделение памяти в C ++
Можно ли с помощью оператора «новый» выделить произвольный блок памяти? В C я могу сделать это как "void * p = malloc (7);" - это выделит 7 байтов, если выравнивание памяти установлено на 1 байт. Как сделать то же самое в C ++ с новым оператором?
4492 просмотров
schedule 19.11.2023

Вызвать деструктор, а затем конструктор (сброс объекта)
Я хочу сбросить объект. Могу ли я сделать это следующим образом? anObject->~AnObject(); anObject = new(anObject) AnObject(); // edit: this is not allowed: anObject->AnObject(); Этот код, очевидно, является подмножеством типичного...
17503 просмотров
schedule 06.01.2024

Передача аргументов объектам, созданным с помощью оператора new?
У меня есть небольшая проблема с C++, для которой я не знаю лучшего решения. У меня есть два класса A и B следующим образом: class A { int n; B* b; public: A(int num): n(num) { b = new B[n]; for (int i = 0; i < n;...
1145 просмотров
schedule 21.01.2024

Как 301 корневой сайт в новую папку, но разрешить новый сайт в корне
Хорошо, позвольте мне посмотреть, смогу ли я объяснить это легко У меня есть форум, который был размещен как моя домашняя страница на www.mysite.com соответственно. Он хорошо проиндексирован, и я не хотел бы потерять какой-либо рейтинг. Сегодня...
146 просмотров

bad_alloc при вызове new в классе Texture
Это оскорбительная строка: Texture *texture = new Texture (...); Я получаю от bad_alloc здесь: void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc) { // try to allocate size bytes void *p; while ((p =...
952 просмотров
schedule 23.01.2024

Использование malloc вместо new и вызов конструктора копирования при создании объекта
Я хотел попробовать масштабируемый_аллокатор TBB, но был сбит с толку, когда мне пришлось заменить часть моего кода. Вот как выполняется распределение с помощью распределителя: SomeClass* s = scalable_allocator<SomeClass>().allocate(...
5652 просмотров

int *массив = новый int[n]; что на самом деле делает эта функция?
Я смущен тем, как создать динамически определенный массив: int *array = new int[n]; Я понятия не имею, что это делает. Я могу сказать, что он создает указатель с именем array, который указывает на новый объект/массив int? Кто-нибудь...
112824 просмотров
schedule 26.11.2023

extjs: открывать новое окно при использовании функции отправки FormPanel
Привет, я создаю Formpanel: inputForm = new Ext.FormPanel({ id:'inputForm', frame: true, closable:true, collapsible:true, renderTo:'somewhere', layout:'anchor', standardSubmit:true, method: 'post', items:[{ ......
9397 просмотров
schedule 01.09.2022

Что на самом деле делает ключевое слово «новое» в Java и следует ли избегать создания новых объектов?
Я зарегистрировался несколько минут назад, хотя я активно пользуюсь этим сайтом с тех пор, как занялся компьютерным программированием, чему я научился сам и считаю своим маленьким хобби. Я искал похожие вопросы, но на самом деле я не мог найти...
71549 просмотров
schedule 28.10.2023

Может ли вызов удалить указатель, выделенный новым размещением?
Можем ли мы вызвать delete для указателя, выделенного с помощью местоположения new ? Если нет, то почему? Пожалуйста, объясните подробно. Я знаю, что нет места размещения. Но мне интересно, почему просто оператор удаления не может удалить...
1071 просмотров

Создать/удалить[] и VirtualAlloc
#include <Windows.h> #include <iostream> using namespace std; int main(void) { unsigned char* pFoo = new unsigned char[1000]; pFoo = (unsigned char*)VirtualAlloc(NULL, 1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);...
1634 просмотров

Что возвращает новый [size_t] + 1
Следующий пример кода из книги "C ++ von A bis Z" (второе издание, перевод: C ++ от A до Z) на странице 364. Образец неверен. // overload operator += #include <iostream> #include <cstring> using namespace std; class String { private:...
248 просмотров
schedule 18.07.2022

новый оператор (как и malloc) не может выделить ~ 450 МБ памяти
Я работаю над программой, которая хранит в памяти массив из примерно 220 миллионов коротких значений. Этот блок данных распределяется следующим образом: short * arrayName = new short[SIZE_OF_ARRAY]; Затем содержимое файла считывается в...
1850 просмотров
schedule 31.07.2022

Ошибка сегментации при создании Qt QApplication с новым
У меня есть программа, в которой QApplication создается с новым оператором. Вылетает по неизвестной причине. Я использую RedHat Linux, G++ 4.8.2, Qt 4.7.2, которые были собраны с помощью того же компилятора. Этот исходный код содержит много...
4165 просмотров

Неправильно ли использовать удаление вне области видимости, как это?
int* func() { int* i=new int[3]; return i; } void funcc() { int* tmp=func(); //delete allocated memory after use delete[] tmp; } Я считаю, что компилятор при компиляции funcc не может знать, что нужно удалить 3 int, например,...
77 просмотров
schedule 10.11.2022

В чем разница в новом заявлении между С++ и JAVA
В C++, когда new используется в присваивании, это называется динамическим выделением памяти, что означает, что вы должны вручную использовать оператор delete[], чтобы вернуть память после. Но в Java нам не нужно использовать удаление в конце....
127 просмотров
schedule 27.01.2024

Прямой вызов деструктора в C++
Отсюда код ниже. class A { int x; public: A() {x = 3;} }; int main() { void* mem = operator new(sizeof(A)); A* obj = static_cast<A*>(new(mem)(A)); std::cout << obj->x << std::endl; obj->A::~A();...
672 просмотров

Переопределение операторов New и Delete в библиотеках
Что произойдет, если две библиотеки (динамически связанные) имеют свою собственную глобально переопределенную версию операторов new и delete и используют собственное управление памятью? Является ли вообще неправильным поставлять средства...
1581 просмотров
schedule 16.02.2024

new[]/delete[] и выбрасывание конструкторов/деструкторов в C++
Что происходит в следующем коде, если создание/уничтожение какого-либо элемента массива выбрасывает? X* x = new X[10]; // (1) delete[] x; // (2) Я знаю, что утечки памяти предотвращены, но дополнительно: Объявление (1), разрушены...
934 просмотров