首页 > 代码库 > 从函数返回数组

从函数返回数组

1 char* vector_advance(char* val)

大部分人都遇到过上面的函数,最大的问题就是资源由谁释放?

再看一个函数

1 char (&vector_advance(char (&var)[4]))[4]

这个函数的意思是,vector_advance是函数名,接收一个包含4个元素的数组,返回一个包含4个元素的数组,这个写法确实有点怪异,

换个易懂的写法

1 typedef mychar char[4];2 mychar& vector_advance(mychar& var);

勉强也能接受,如果使用boost库的Array库,就会方便很多

1 #include <boost\array.hpp>2 typedef boost::<array<char, 4> array4_t;3 array4_t& vector_advance(array4_t& var);