タグ付けされた質問 「stackalloc」

5
`stackalloc`キーワードの活用
stackallocC#でのプログラミング中に実際に使用した人はいますか?何が行われているのかはわかっていますが、コードに表示されるのは偶然staticです。たとえば、を入力し始めるとIntellisenseが示唆するためです。 これはの使用シナリオとは関係ありませんがstackalloc、実際にはアプリでかなりの量のレガシー相互運用を行っているため、時々unsafeコードを使用することに頼ることができました。しかし、それでも私は通常、unsafe完全に回避する方法を見つけます。 また、.Netの単一スレッドのスタックサイズは〜1Mb(間違っている場合は修正してください)であるため、を使用することはできませんstackalloc。 「これは私が危険にさらして使用するためのデータと処理の正確な量です」と言うことができるいくつかの実際的なケースはありますstackallocか?
134 c#  keyword  stackalloc 

1
この安全でないコードは.NET Core 3でも機能しますか?
Span<T>可能な場合はヒープ割り当てを回避するために使用するライブラリをリファクタリングしていますが、古いフレームワークも対象としているため、いくつかの一般的なフォールバックソリューションも実装しています。しかし今、私は奇妙な問題を発見しました。.NETCore 3にバグを発見したのか、それとも違法なことをしているのかはよくわかりません。 問題: // This returns 1 as expected but cannot be used in older frameworks: private static uint ReinterpretNew() { Span<byte> bytes = stackalloc byte[4]; bytes[0] = 1; // FillBytes(bytes); // returning bytes as uint: return Unsafe.As<byte, uint>(ref bytes.GetPinnableReference()); } // This returns garbage in .NET Core 3.0 with …
42 c#  stackalloc 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.