C# 从C++到C的结构中指针指向数组的编组指针 如何将表达式从C++转换为C? struct MyStruct { uint8_t *rcSource; uint8_t *rcMask; uint32_t *clientAuthSchemes; } 结构在C++中初始化为: MyStruct st; st.rcSource = (uint8_t*) malloc(width*height); st.rcMask = (uint8_t*) malloc(width*height); st.clientAuthSchemes = (uint32_t*) malloc(sizeof(uint32_t)*(size+1));
我相信这是一种方式:C# 从C++到C的结构中指针指向数组的编组指针 如何将表达式从C++转换为C? struct MyStruct { uint8_t *rcSource; uint8_t *rcMask; uint32_t *clientAuthSchemes; } 结构在C++中初始化为: MyStruct st; st.rcSource = (uint8_t*) malloc(width*height); st.rcMask = (uint8_t*) malloc(width*height); st.clientAuthSchemes = (uint32_t*) malloc(sizeof(uint32_t)*(size+1));,c#,arrays,marshalling,C#,Arrays,Marshalling,我相信这是一种方式: struct MyStruct { sbyte rcSource, rcMask; int clientAuthSchemes; } :如果这些是一维数组,您可能需要如下内容: struct MyStruct { public byte[] rcSource; public byte[] rcMask; public uint[] clientAuthSchemes; } 初始化: MyStruct st; st.
struct MyStruct
{
sbyte rcSource, rcMask;
int clientAuthSchemes;
}
:如果这些是一维数组,您可能需要如下内容:
struct MyStruct
{
public byte[] rcSource;
public byte[] rcMask;
public uint[] clientAuthSchemes;
}
初始化:
MyStruct st;
st.rcSource = new byte[width*height];
st.rcMask = new byte[width*height];
st.clientAuthSchemes = new uint[size+1];
不,您创建的是字节和整数,而不是无符号字节和无符号整数的数组。同意Gabe的说法,我还认为它一定是一个数组。它太模糊了,指针可以引用单个值或数组。直接翻译是ItpTR,但是如果C++代码不正确,则很难正确初始化它们。在C中进行这项工作的几率不太好。但是,你能不能详细描述一下如何初始化这个内存?我不能,你没有发布任何细节。你甚至不能用这里给出的信息在C++中初始化这个。HansPassant rcSource是这样初始化的:struct->rcMask=mallocwidth*height;rcMask以相同的方式初始化。clientAuthSchemes是这样初始化的:struct->clientAuthSchemes=uint32\u t*mallocsizeofuint32\u t*size+1;所有这些字段都用作1x阵列。