Описание тега stackalloc
C# operator that allocates a block of memory on the stack
1
ответ
Почему stackalloc принимает переменную длину?
Есть идеи, почему ключевое слово stackalloc принимает переменную длину? Если эта инструкция возвращает указатель на буфер, выделенный в кадре стека, как компилятор управляет этим? Он перекомпилирует функцию во время выполнения каждый раз, когда она …
14 май '16 в 20:34
1
ответ
Анонимный делегат не использует новый local для каждой итерации, когда данные на локальном stackalloc
При использовании анонимного delegate В C# CLR сгенерирует копию локальных (например, переменных в текущей области) в куче используемых переменных. Такой локальный будет помещен в кучу для каждой объявленной переменной текущей области. Вы можете уви…
29 янв '19 в 05:22
1
ответ
Получить указатель (IntPtr) из диапазона<T>, находящегося в безопасном режиме
Я хотел бы использовать Span и stackalloc для выделения массива структуры и передачи его вызову взаимодействия. Можно ли извлечь указатель (IntPtr) из диапазона, не будучи небезопасным?
05 фев '19 в 20:42
2
ответа
Инициализация памяти, выделенной с помощью stackalloc
Если я выделяю память stackalloc в C# эта память инициализирована (с 0 ) Документация не говорит об этом, а только говорит о том, что зарезервировано правильное количество. В моих тестах память по умолчанию 0, но это не значит, что это гарантировано.
30 дек '11 в 11:37
1
ответ
Почему stackalloc должен использоваться как инициализатор переменной?
Я пишу небезопасный код на C# (продолжение этого вопроса), и мне интересно, почему именно stackalloc Ключевое слово должно использоваться в качестве инициализатора переменной? Например, это приведет к синтаксической ошибке: public unsafe class Unsaf…
02 сен '15 в 01:16
4
ответа
Почему stackalloc нельзя использовать с ссылочными типами?
Если stackalloc используется со ссылочными типами, как показано ниже var arr = stackalloc string[100]; есть ошибка Невозможно получить адрес, получить размер или объявить указатель на управляемый тип ("строка") Почему так? Зачем CLR нельзя объявить …
24 фев '16 в 09:25
1
ответ
Защита от переполнения буфера для stackalloc в.Net
Из ссылки на C# для stackalloc: использование stackalloc автоматически включает функции обнаружения переполнения буфера в общеязыковой среде выполнения (CLR). Если обнаружено переполнение буфера, процесс завершается как можно быстрее, чтобы минимизи…
17 фев '13 в 21:02
2
ответа
C# & .NET: stackalloc
У меня есть несколько вопросов о функциональности stackalloc оператор. Как это на самом деле выделить? Я думал, что это что-то вроде: void* stackalloc(int sizeInBytes) { void* p = StackPointer (esp); StackPointer += sizeInBytes; if(StackPointer exce…
12 дек '11 в 10:08
1
ответ
Как работает stackalloc?
Здравствуйте, я пытаюсь выяснить, как это stackalloc работа. Так что из C/C++ Насколько мне известно (ограничено), вы не можете распределять память в стеке динамически, как здесь: C/C++ пример: void Allocate(int length){ int vector[length]; //wont w…
17 май '18 в 06:45
2
ответа
PIMPL и распределение стека
Так что я думал о PIMPL и распределении стека. Я писал библиотеку и решил использовать PIMPL, чтобы скрыть приватного члена класса. Это означает, что я бы объявил класс, как это class Foo { private: class Handle; std::tr1::shared_ptr<Handle> h…
11 июл '10 в 02:33
3
ответа
Как установить int для байта * C#
Как я могу преобразовать int в байт * по определенному индексу в байте *? В идеале я хотел бы иметь что-то вроде: unsafe{ byte* igm=stackalloc byte[8]; igm[4]=4283; } Он установит первую часть бита на igm[4], а остальную часть на igm[5]. Изменить: я…
11 июл '10 в 09:21
1
ответ
How to copy stackalloc memory to/from array?
При работе с stackalloc memory I would like to copy its content to/from an array. Я ищу что-то похожее на Buffer.BlockCopy which would allow me to pass offset in source data and offset in destination. Is there is such method for stackalloc объем пам…
10 окт '18 в 06:38
3
ответа
C++ распределение в стеке действует с любопытством
Любопытные вещи с g++ (может быть, также с другими компиляторами?): struct Object { Object() { std::cout << "hey "; } ~Object() { std::cout << "hoy!" << std::endl; } }; int main(int argc, char* argv[]) { { Object myObjectOnTheStack…
18 фев '10 в 23:24
2
ответа
Stackalloc и типы значений
Я прочитал пример из старого поста Stackru о том, когда использовать stackalloc. Теперь этот пример меня немного озадачил: public unsafe void DoSomeStuff() { byte* unmanaged = stackalloc byte[100]; byte[] managed = new byte[100]; //Do stuff with the…
22 апр '14 в 20:02
0
ответов
C#- проверить, достаточно ли у стека свободной памяти
Вместо того, чтобы выделять кучу и закрепить таблицу указателей мне нужно как локальный метод, я хочу stackalloc это везде, где это возможно. Это критический код, фактически это, пожалуй, самый важный раздел моей системы, поэтому я не хочу просто пе…
08 май '18 в 09:41
3
ответа
Не может ли stackalloc использоваться в C# для инициализации ранее объявленного указателя?
Я только что обнаружил stackalloc Нотация C# имеет невероятную причуду, пожалуйста, смотрите следующий код: // int *p; // p = stackalloc int[42]; // won't work! // Error CS1525: Unexpected symbol `stackalloc' (CS1525) int *p = stackalloc int[42]; //…
09 ноя '12 в 12:38
6
ответов
Практическое использование ключевого слова stackalloc
Кто-нибудь когда-либо использовал stackalloc во время программирования на C#? Я знаю, что делает, но единственный раз, когда он появляется в моем коде, случайно, потому что Intellisense предлагает это, когда я начинаю печатать static, например. Хотя…
24 апр '09 в 09:51
2
ответа
C# Возвращает указатель, созданный с помощью stackalloc внутри функции
У меня есть код C#, который взаимодействует с кодом C++, который выполняет операции со строками. У меня есть этот кусок кода в классе статического помощника: internal static unsafe byte* GetConstNullTerminated(string text, Encoding encoding) { int c…
06 май '17 в 07:06
1
ответ
Безопасное индексирование внутри небезопасного кода
Доброе утро, день или ночь, Предисловие: приведенный ниже код ничего не дает. Это просто для целей объяснения. Что-то не так с выделением и использованием массива "безопасный режим" внутри небезопасного кода? Например, я должен написать свой код как…
23 мар '11 в 07:42
1
ответ
Указатель на структуру, содержащую System.Numerics.Vector<double> в C#
Я пытаюсь сделать вектор с 4 двойными с библиотекой System.Numerics из-за SIMD. Итак, я сделал эту структуру: public struct Vector4D { System.Numerics.Vector<double> vecXY, vecZW; ... } На этом этапе я кодирую его для 128-битного SIMD-регистра…
03 май '16 в 10:47