На https://msdn.microsoft.com/ru-ru/library/zycewsya.aspx есть пример. Пример запускается, работает, но ни чего не выводит. Попробовал добавить в пример Console.WriteLine - не получилось:
unsafe struct MyBuffer
{
public fixed char fixedBuffer[10];
}
unsafe class MyClass
{
public MyBuffer myBuffer = default(MyBuffer);
}
static void Main()
{
MyClass myC = new MyClass();
unsafe
{
fixed (char* charPtr = myC.myBuffer.fixedBuffer)
{
*charPtr = 'A';
}
Console.WriteLine(new string(myC.myBuffer.fixedBuffer)); // ошибка
}
Console.ReadLine();
}
Ругается:
Невозможно использовать буферы фиксированного размера в нефиксированных выражениях. Попробуйте использовать оператор fixed.
Вопрос - как можно вывести "A"?
Надо
Console.WriteLine(new string(myC.myBuffer.fixedBuffer)); // ошибка
заменить на
MyBuffer tmp = myC.myBuffer;
Console.WriteLine(new string(tmp.fixedBuffer));
Теперь всё работает.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
С появлением async await все стало красивоВозьмем, например, такой кусочек кода
Как можно узнать что за элемент находится в 5-ом месте в строке с конца считая ?
Делаю простой файловый менеджерПапки/файлы отображает компонент webBrowser