从函数返回数组

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);

 

posted @ 2014-07-28 21:48  lniwn  阅读(221)  评论(0编辑  收藏  举报