Вопросы с меткой [unsafe]
Небезопасный контекст, прямая работа с памятью.
27 вопросов
- Конкурсные 0
- Неотвеченные
- Цитируемые
- Рейтинг
- Популярные
- За неделю
- За месяц
- Неотвеченные (мои метки)
0
голосов
1
ответ
87
показов
Почему при передачи параметра в функцию с модификатором ref необходимо использовать fixed для получения указателя?
С функцией Main все понятно, все переменные будут помещены в стек и поэтому не надо использовать fixed.
При вызове функции boo, будет передана ссылка на объект типа T (T - class), в свою очередь ...
0
голосов
0
ответов
82
показа
В чём может быть опасность изменения строк? (Пример кода)
Сделал пример кода, меняющего содержимого строки в памяти.
void Main()
{
GC.Collect();
string s1 = "abcdef";
string s2 = null;
s2 = "abc";
s2 += "def";...
0
голосов
1
ответ
85
показов
Оптимизация путем работы с небезопасным программированием
Очень интересует ответы на некоторые вопросы:
Правда ли, что если итерировать простой массив чисел и получать его элементы через индексацию немного не оптимизировано, чем получить указатель на этот ...
0
голосов
1
ответ
159
показов
Как можно изменить тип объекта в рантайме?
Можно ли какими-то средствами C# изменить тип какого-то объекта на любой другой в рантайме?
1
голос
0
ответов
57
показов
AccessViolationException при попытке задать значение поинтеру
Пытаюсь изменить значения в таблице методов в рантайме для GC, это относительно успешно получается для некоторых методов, но для некоторых я получаю AccessViolationException. Почему?
В конкретном коде ...
0
голосов
1
ответ
131
показ
Отсутствует IndexOutOfRangeException при попытке обратиться к несуществующему индексу строки в unsafe-коде
Почему не вылетает исключение? Как я понимаю, char* - непрерывная область памяти из 4 элементов и если я обращаюсь к [10], то обращаюсь к несуществующей ячейки памяти. Но если память выделяется только ...
1
голос
1
ответ
90
показов
Как получить адрес памяти типа T
Допустим есть тип T where T: struct. Как получить на него адрес памяти?
unsafe private void SmthMethod(T* a) {} //ошибка
unsafe private void SmthMethod2(T a)
{
fixed(T* b = a) { } //ошибка
}
1
голос
2
ответа
386
показов
Приведение bool к 1 или 0 с помощью указателей
Как из true получается 1 при использовании указателей? И почему именно 1 а не другое число как в случае с переменной d?
unsafe
{
bool a = true;
bool* b = &a;
int c = (int*)b; //указатель ...
0
голосов
0
ответов
107
показов
Добавить элемент в двусвязном списке
Помогите пожалуйста, не могу удалить элементы, которые идут после числа больше 5
public unsafe struct ListNode
{
public double Data;
public ListNode* Next;
public ...
0
голосов
2
ответа
240
показов
Удалить элемент после отрицательного элемента в односвязном списке
В списке удаляется предидущий элемент перед КАЖДЫМ отрицательным элементом, как сделать, чтобы удалялся после КАЖДОГО следующего?
class Program
{
public struct MyList
{
...
3
голоса
1
ответ
209
показов
При отладке не видно данные расположенные в Span<byte>
Я написал структуру в которую можно вместить до 2048 байт данных (для передачи через Pipe).
Дело в том, что можно посмотреть данные которые находятся в buffer.Message.Data, но при этом данных в buffer....
4
голоса
1
ответ
231
показ
Управляемый код против неуправляемого при работе с X86 Intrinsics
Узнал, что при работе с интринсиками в System.Runtime.Intrinsics.X86 необязательно использовать указатели для адресации данных, а можно просто сделать каст массива данных с помощью System.Runtime....
13
голосов
2
ответа
2k
показов
Оператор Собеля - SIMD реализация. SSE/AVX
Основная задача - перевести картинку в байты от 0 до 255 и обработать оператором Собеля с использованием SIMD, версия без симд перед вами, не знаю, как начать и использованием симд.
using System;
...
2
голоса
1
ответ
675
показов
Получение rgb пикселя c#
У меня стоит задача разобрать изображение на пиксели, для дальнейшей идентификации цвета каждого из них.
Обычный GetPixel мне не подходит из-за скорости. Я нашёл следующий код, но при работе с ним ...
0
голосов
0
ответов
67
показов
Корректен ли этот код для 64-битных систем?
Этот код заполняет массив от 0 до 1000000 используя указатели через небезопасный контекст. Вопрос заключается в том: корректен ли этот код для 64-битных систем? Если нет, то как его нужно переписать?
...