点击查看详细介绍

ug里传二维数组怎么传好阿

Tyrael 21年前 17979 9

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


比如要传多个字符串给一个API函数
这些字符串存在二维字符数组中char string[50][50]
函数形参是char * *
实参应该怎么写呢?
用数组名string不行

0

最新回复 (9)
  • zzz 21年前
    1

    解决这个问题最好的方法就是申请动态二维数组。

  • pinkwall 21年前
    2

    定义一个一维数组指针 char* str;

  • spline 21年前
    3

    如果你的数组的大小是固定的,并且数组是静态分配的,是可以传递二维数组名的,这是没有什么问题的。
    如果你的C 功底好,可以尝试用STL,STL的平台无关性还不错,这是一个很不错的东西。但是它跨动态库传递数据就要费些工夫。

  • Tyrael 21年前
    4

    嗯,我们最后用的就是zzz斑竹说的
    pinkwall兄的意思是不是先定义二维数组string[50][50]
    然后char * pstring = string?这样不行吧
    spline兄,不知道你有没有试过传递二维数组名?我在vc6中会有如下编译错误:
    cannot convert parameter 6 from 'char [500][256]' to 'char ** '
    STL我是试过的,但是UG API函数参数通常是char *型,而用string类的c_str()函数返回的是const char *型,不能隐式转换啊

  • pinkwall 21年前
    5

    你没理解我的意思

  • zzz 21年前
    6

    关键还要看这个char **是返回参数,还是输入参数。如果是返回,则要使用

  • goodluckwu 21年前
    7

    在c中 定义char c[2][5];
    c只是一个char*,而不是一个char**。
    它实际就是定义了一个c[10]而已。
    这一点不知道楼主注意了没有
    如果就想定义一个char**,应该这样定义:
    char* c[2];
    char a[]=

  • Tyrael 21年前
    8

    pinkwall兄:
    正如zzz斑竹所说,你这种方法只适用于string是输出参数,如果你是要传入的话,你当然得自己负责分配空间,而不是仅仅声明一个指针
    goodluckwu兄:
    这种方法我们也用过,但是如果数组很大的话,就有很多额外的开销
    比如char string[500][500],如果要把string传入,还要额外定义一个
    char * pstring[500],然后通过循环pstring = string,最后传入pstring
    太麻烦了
    其实我觉得用STL中的string配合vector是最好的了,就是最后传参数有问题

  • spline 21年前
    9

    我在vc6中会有如下编译错误:
    cannot convert parameter 6 from 'char [500][256]' to 'char ** '

请登录后发表新帖
免责声明:本站所有资料内容均来自网友个人分享或网上搜集,本站只为方便学习和交流技术而提供平台,不对网站内容负任何法律责任!
Powered by UGapi.com ©2012-2025 UG二次开发技术网站 版权所有    工信部备案:蜀ICP备15005313号