C# 空[n]数组的编译器错误?

C# 空[n]数组的编译器错误?,c#,visual-studio-2013,void,unsafe,C#,Visual Studio 2013,Void,Unsafe,我正在研究一些不安全的C#代码,其中包含许多类似于以下内容的声明: void* voidPointer = stackalloc void[bufferSize]; 构建这段代码时,我在每一行上都会遇到一个错误“error 1关键字'void'不能在此上下文中使用” 奇怪的是,如果我将声明的[bufferSize]部分剪切并粘贴回同一位置并保存,编译器就会停止抱怨 我正在使用Visual Studio 2013专业更新2 有人知道这是怎么回事吗?void*是指向未知大小对象的指针。无法分配大小

我正在研究一些不安全的C#代码,其中包含许多类似于以下内容的声明:

void* voidPointer = stackalloc void[bufferSize];
构建这段代码时,我在每一行上都会遇到一个错误“error 1关键字'void'不能在此上下文中使用”

奇怪的是,如果我将声明的
[bufferSize]
部分剪切并粘贴回同一位置并保存,编译器就会停止抱怨

我正在使用Visual Studio 2013专业更新2



有人知道这是怎么回事吗?

void*
是指向未知大小对象的指针。无法分配大小未知的
bufferSize
对象。请尝试使用
(byte*)(stackalloc byte[bufferSize])

void*
是指向未知大小对象的指针。无法分配大小未知的
bufferSize
对象。请尝试使用
(byte*)(stackalloc byte[bufferSize])

void*
是指向未知大小对象的指针。无法分配大小未知的
bufferSize
对象。试试stackalloc byte[bufferSize]…也许吧。@usr:哦,那就对了?呸!我会回答的;谢谢@minitech您的答案似乎正确,但我对复制/粘贴部分感到困惑。怎么会这样?不,你的答案没有问题。我的意思是:
奇怪的是,如果我将声明的[bufferSize]部分剪切粘贴到同一位置并保存,编译器就不会抱怨了。
@Alireza:啊,是的!我对此也感到困惑,因此最初没有回答。我想我们只能等着看……
void*
是一个指向未知大小对象的指针。无法分配大小未知的
bufferSize
对象。试试stackalloc byte[bufferSize]…也许吧。@usr:哦,那就对了?呸!我会回答的;谢谢@minitech您的答案似乎正确,但我对复制/粘贴部分感到困惑。怎么会这样?不,你的答案没有问题。我的意思是:
奇怪的是,如果我将声明的[bufferSize]部分剪切粘贴到同一位置并保存,编译器就不会抱怨了。
@Alireza:啊,是的!我对此也感到困惑,因此最初没有回答。我想我们还是等着瞧吧…@usr:谢谢你的编辑!对不起,请问
stackalloc
通常返回什么?我在文档中找不到它。从逻辑上看,它似乎应该是一个
字节*
。@minitech stackalloc返回一个指向与数组元素类型相等的类型的指针在深入研究相关文件后,它似乎是由某个(可能已损坏)工具生成的代码。幸运的是,我可以把它扔掉。@usr:谢谢你的编辑!对不起,请问
stackalloc
通常返回什么?我在文档中找不到它。从逻辑上看,它似乎应该是一个
字节*
。@minitech stackalloc返回一个指向与数组元素类型相等的类型的指针在深入研究相关文件后,它似乎是由某个(可能已损坏)工具生成的代码。幸运的是,我可以把它扔掉。