VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: 海里的浪

函数如何返回一个不定长的数组?

[复制链接]

0

主题

55

帖子

44.00

积分

新手上路

Rank: 1

积分
44.00
发表于 2020-5-15 18:00:01 | 显示全部楼层
void fun(unsigned char *in,vector<unsigned char> & out)
回复

使用道具 举报

1

主题

39

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-5-27 12:00:01 | 显示全部楼层
int fun(unsigned char *in,unsigned char *& out)
{
    int size;
    for (...) ... 判断In长度
    out = new unsigned char[size]; //分配新空间,注意out指针要引用传递,
-----------------------------------//才能改变你外面的指针
    return size;  //返回长度
}

不定长的数组, 也就是动态分配的内存区域,可以用指针来指向.
不定长并非是不知道长度,在你分配的时候就知道长度,只是调用一方不知到长度.既然函数内部知道
长度,那么将这个长度传递出去就是了.
回复

使用道具 举报

0

主题

49

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-6-7 18:00:01 | 显示全部楼层
为什么不用string
回复

使用道具 举报

3

主题

10

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-6-9 22:45:01 | 显示全部楼层
struct pointer{
char * a;
int size;
}

pointer foo{
pointer p;
size = 100;
p.a = new char[size];
return p;
}

=======================================
这样子就可以了哈
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表