概述
实际工作中,会碰到go调用c语言动态库,涉及到数组的赋值时,出现了问题,例如,c里面定义了如下结构:
typedef struct ANA_PROCESS_FRAME_
{
ANA_PROCESS_FRAMETYPE nType;
ANA_VIDEO_FRAME stVideoFrame;
ANA_AUDIO_FRAME stAudioFrame;
unsigned char byRes[128];
}ANA_PROCESS_FRAME;
在go语言中,如果用以下方式对ANA_PROCESS_FRAME里面的byRes赋值,则会出现编译不过的情况。
pInputFrame := new(C.ANA_PROCESS_FRAME);
C.strcpy(pInputFrame.byRes, C.CString("/home/wyg/GaitAnalyizeTool/AlgorithmAnaGait/fanmian1.mp4"))
这着实让人费解,好在找到了下面这样一种方式进行赋值,如下所示:
mystr := "/home/wyg/GaitAnalyizeTool/AlgorithmAnaGait/fanmian1.mp4"
arr := [128]C.uchar{}
for i:= 0; i < len(mystr) && i < 128; i++{
arr[i] = C.uchar(mystr[i])
}
pInputFrame := new(C.ANA_PROCESS_FRAME);
pInputFrame.byRes = arr;
这样就可以了。
最后
以上就是快乐书本为你收集整理的cgo里面,字符数组的赋值的全部内容,希望文章能够帮你解决cgo里面,字符数组的赋值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复