Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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阵列。