gpt4 book ai didi

c# - 不能在 C# 中使用 stackalloc 来初始化先前声明的指针吗?

转载 作者:太空狗 更新时间:2023-10-30 00:05:21 25 4
gpt4 key购买 nike

我刚刚发现 C# 的 stackalloc 符号有一个令人难以置信的怪癖,请看下面的代码:

//          int *p;
// p = stackalloc int[42]; // won't work!
// Error CS1525: Unexpected symbol `stackalloc' (CS1525)

int *p = stackalloc int[42]; //works

我的意图是在像这样的三元表达式中使用 stackalloc:

int *p = size > 0xFFFFF ? (int*)Marshal.AllocHGlobal(size).ToPointer() : stackalloc int[size];

完全出乎意料的编译器罢工让我震惊。如果有人能阐明这种奇怪的行为,我将不胜感激。我已经在单声道和 .net 上对其进行了测试,均无效。

最佳答案

http://msdn.microsoft.com/en-us/library/cx9s2sy4(v=vs.100).aspx
您只能在声明和初始化局部变量时使用 stackalloc。

关于c# - 不能在 C# 中使用 stackalloc 来初始化先前声明的指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13308242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com