Описание тега static-memory-allocation

2 ответа

Создать указатель на значение в одной строке

Я хотел бы создать указатель на значение в одну строку; Я хочу такую ​​же функциональность, как эта: int i = MY_VALUE int * j = &i; Тем не менее, я хочу сделать это в одной строке, и не хочу использовать две переменные. Я знаю, что я могу сделат…
1 ответ

Какие причины выделить указатель на кучу?

Возможно, этот вопрос уже задавался, но я не смог его найти. Пожалуйста, перенаправьте меня, если вы что-то видели.Вопрос: в чем выгода использования: myClass* pointer; над myClass* pointer = new(myClass); Из прочтения других тем я понимаю, что перв…
3 ответа

Оптимизация часто вызываемой функции с большими локальными переменными (C++)

Допустим, есть функция, которую мне нужно вызывать миллионы раз. Арифметические операции, выполняемые этой функцией, не так тяжелы, поэтому важно только то, как быстро распределяются все переменные. Также мы предполагаем, что переменная всегда разме…
3 ответа

Зачем мне динамическое выделение памяти, если я могу просто создать массив?

Я читал о динамическом распределении памяти и статическом распределении памяти и нашел следующее о динамическом распределении памяти: В программах, рассмотренных в предыдущих главах, все потребности в памяти были определены до выполнения программы п…
2 ответа

В чем разница между статическим и динамическим размещением вектора в с ++?

Я знаю разницу для следующих случаев: case 1: int a[10]; для случая 1 память для массива выделяется в стеке. case 2: int *a = new int[10]; для случая 2 память выделяется в куче и возвращается указатель. Но в чем разница ниже двух объявлений, так как…
1 ответ

Использование waveOutWrite с динамически распределенной памятью

Я экспериментировал со звуком, используя C. Я нашел фрагмент кода, который позволил бы мне генерировать звуковой сигнал PCM и выводить его через звуковую карту. Это работало довольно хорошо для того, что это было. Вот код, который работает: (Вам нуж…
1 ответ

Размер массива должен быть известен во время компиляции

Я написал простой код, где я создаю массив без фиксированного размера. Я попытался скомпилировать код в gcc и работает нормально. Пожалуйста, объясните, почему этот рабочий размер массива должен быть известен во время компиляции. Вот код, который я …
1 ответ

Где функция-член выделяет память в C++ и как часто?

Где функция-член класса получает свою память? Является ли стековый фрейм ответом на это? И распределяется ли он всякий раз, когда мы вызываем функцию-член? Это как всякий раз, когда мы вызываем функцию-член, используя объект, он выделяется в кадре с…
1 ответ

Распределение памяти массива указателей Char

Как выполняется распределение памяти для массива указателей на символы и двойного указателя. char *s[]={"knowledge","is","power"}; char **p; p=s; cout<<++*p; В приведенном выше выводе кода, предоставленном компилятором is- nowledge Мой вопрос …
18 авг '18 в 01:55
1 ответ

Быстрее ли выделить память статически один раз или выделить динамически?

Я аспирант в области машиностроения. У моей исследовательской группы есть собственный конечно-элементный код, написанный на C++. Я заметил, что много памяти для векторов и массивов выделяется статически, например: В Element.h // A vector to store a …
2 ответа

Измерять статическую, кучную и стековую память? (C++, Linux - Centos 7)

Я хотел бы измерить стек, кучу и статическую память отдельно, потому что у меня есть некоторые ограничения для каждого из них. Для измерения кучи памяти я использую инструмент valgrind->massif. Массив также должен быть в состоянии измерить кучу и па…
1 ответ

Ошибка Visual Studio C++ 0xC0000005: спутана с выделением памяти

Я Java-разработчик, но теперь мне нужна библиотека C++, и я не очень опытен в этом языке. В частности, меня всегда смущают указатели, ссылки и распределение памяти. Это, я думаю, и есть причина, по которой я получаю ошибку в разрабатываемом классе м…
1 ответ

Глобальные динамические переменные с покрытием в C++

Существует три вида памяти: статическая память (статические переменные / члены, глобальные переменные), стек и куча. Определение глобальных переменных - это переменные, определенные вне каких-либо функций. Я задаюсь вопросом о коде ниже, #include&lt…
2 ответа

Почему cpp позволяет получить доступ к памяти, которую я не выделил?

В cpp можно использовать объявление массива в качестве массиваtypename [size]; илиимя типа * массив = новое имя типа [размер]; Где массив имеет длину 'size', а элементы индексируются от '0' до 'size -1'. Здесь у меня вопрос: разрешен ли мне доступ к…
1 ответ

Статическое распределение памяти - распределяется ли оно последовательно?

Мне нужно знать, гарантировано ли для всех компиляторов, что &N == &N_neg[MAXN] в следующем коде. int N_neg[MAXN], N[MAXN]; // defined in the global scope! T<N> t; // so I can access N[i] (for i < 0) inside T Если это так, я закончи…
18 сен '17 в 18:15
1 ответ

Нужны ли виртуальные деструкторы в мире без динамической памяти?

Виртуальные деструкторы необходимы, когда объект (потенциально) разрушается из указателя базового класса. Рассмотрим программу без динамической памяти, которая часто встречается во встроенных системах. Здесь, используя new или же delete вызывает оши…
2 ответа

Распределение памяти и использование памяти процесса

Я хотел бы понять, почему данные, которые динамически распределяются при многократном вызове, используют столько памяти, сколько указано в коде или выделяется с помощью одного вызова malloc, Примеры В качестве примера я сделал следующие два кода на …
4 ответа

Статическая и динамическая адресация памяти?

Я инициализировал массив в C++, используя как статическое, так и динамическое размещение. // dynamic allocation... len is input by user. int *data = new int [len]; // print memory address cout<< &data<<endl; cout<< &data[0]…
0 ответов

Проблемы распределения IOS с MPMoviePlayerViewController

В моем приложении для ipad в viewDidLoad я создал видео в первом представлении, чтобы иметь вступление. В инструменте выделения я вижу, что выделенная память увеличивается до 120 МБ при запуске видео, хорошо, мне все равно, но после окончания видео …
0 ответов

Ввод размера массива во время выполнения в C++ и затем его инициализация?

Псевдокод: int n; cin>>n; int ar[n]; Почему это не дает ошибку? И если это разрешено, зачем нам новые операторы и операторы удаления? Единственное различие, о котором я могу думать, состоит в том, что new будет выделять память в куче, где это …