doulangbizhan5160 2019-09-05 04:58 采纳率: 100%
浏览 132

GoLang和CPP之间的交叉通信映射时出现内存错误

I'm trying to pass a Unordered_Map from Cpp to GoLang. I have currently created a dll from GoLang which contains a method which accepts a Map as input and initialize it. My assumption is that in GoLang Map is passed as reference so I'm not returning anything.

    //GoLang CODE
    func InitializeMap(m map[*C.char]*C.char) { 
        ctr1 := C.CString("Anand")
        ctr2 := C.CString("1")
        m[ctr1] = ctr2   // Memory error is pointing at this line.
     }

         // CPP 
         std::unordered_map<char *,char *> mapInstance;
         InitializeMap(&mapInstance);

        // Header
        typedef void *GoMap;
        extern void InitializeMap(GoMap p0);

The error thrown is :

unexpected fault address 0x18dda4d0080 fatal error: fault [signal 0xc0000005 code=0x0 addr=0x18dda4d0080 pc=0x6de902e3]

Please Help me in right direction.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
    • ¥15 个人网站被恶意大量访问,怎么办
    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 Centos / PETGEM
    • ¥15 划分vlan后不通了
    • ¥15 GDI处理通道视频时总是带有白色锯齿
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)
    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制