找回密码
 立即注册
收起左侧

二维数组、二维指针的调用、赋值

0
回复
5444
查看
[复制链接]

尚未签到

来源: 2019-5-13 09:58:17 显示全部楼层 |阅读模式
5Qter豆
在dll里面写了一个接口,返回CString** 如下:

        CString **readUITagName = (CString **)malloc(CFGNUM * sizeof(CString*));
        for (int i = 0; i < CFGNUM; i++)
        {
                readUITagName[i] = (CString *)malloc(CFGPLIES * sizeof(CString));
        }
        for (int i = 0; i < CFGNUM; i++)
        {
                for (int j = 0; j < CFGPLIES; j++)
                {
                        memcpy(&readUITagName[i][j], &m_hmiUI.curUITagName[i][j], sizeof(CString));
  }
        }
```
```

```
        return readUITagName;
```
```
在exe中调用这个函数,如下:

```
CString m_readUITagName[CFGNUM][CFGPLIES];
       
```
CString **readUITagName = NULL;
        readUITagName = (CString **)malloc(CFGNUM * sizeof(CString*));
        for (int i = 0; i < CFGNUM; i++)
        {
                readUITagName[i] = (CString *)malloc(CFGPLIES * sizeof(CString));
        }
        readUITagName = pCrSysCfgDataFunc(); // 调用那个返回CString**的函数,
        for (int i = 0; i < CFGNUM; i++)
        {
                for (int j = 0; j < CFGPLIES; j++)
                {
                        //readUITagName[i][j] = (CString *)(i * CFGNUM + j);
                        memcpy(&m_readUITagName[i][j], &readUITagName[i][j], sizeof(CString));
                        sprintf(ss, readUITagName[i][j]);
                        printf("%s\n", ss);
                }
        }
```
```
结果一调用,不仅结果不对,还影响到了,exe中其他一个二维数组的数据。
是调用的问题吗?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了