Visual c++ 指针cast/init可以在某些编译器上工作,但不能在可视化编译器上工作

Visual c++ 指针cast/init可以在某些编译器上工作,但不能在可视化编译器上工作,visual-c++,casting,void-pointers,Visual C++,Casting,Void Pointers,我有一些以前用DSP编译器编译的代码。现在我需要用VisualStudio编译代码,我遇到了一些麻烦。在这两种情况下,该代码都被编译为C++!p> 你知道怎么投这个吗 有一件事是这样的: int temp[56]; // ... int (*myarray)[14][2] = (void *) temp; //myarray is supposed to use only parts of temp 我得到的错误是: 错误C2440:“正在初始化”:无法从“void*”转换为“int8\u

我有一些以前用DSP编译器编译的代码。现在我需要用VisualStudio编译代码,我遇到了一些麻烦。在这两种情况下,该代码都被编译为C++!p> 你知道怎么投这个吗

有一件事是这样的:

int  temp[56];
// ...
int (*myarray)[14][2] = (void *)  temp; //myarray is supposed to use only parts of temp
我得到的错误是: 错误C2440:“正在初始化”:无法从“void*”转换为“int8\u t(*)[14][2]”

THX。
Bubu

当然,您不能从
void*
自动向下转换到其他任何内容,因此错误消息是正确的,我无法理解此代码是如何工作的。但是我不知道如何在不重新设计的情况下使其工作,这可能是像这样的遗留代码中的一个问题。嗨,实际上解决方案非常简单!正如错误所说:它在将int转换为奇怪的指针时遇到了问题。我需要将它转换为:(int(*)[14][2]),而不是转换为空指针!哦,天哪。我最好回去睡觉:)不管怎样,你检查过它是否真的有效吗?我的意思是,不只是编译,而是按照预期的方式进行。是的,我写了一些测试代码,可以看到它也可以工作!