数组的安全复制

如果你要制作一个数组clone,你该怎么做?

template <class T> 
T* NewCopy( const T* src,size_t srcsize, size_t destsize ) { 
    assert( destsize >= srcsize ); 
    T* dest = new T[destsize]; //可能会抛出bad_alloc异常 
    try { 
        std::copy( src, src+srcsize, dest ); 
    } 
    catch(...) { 
        delete[] dest; // delete 语句永远都不会抛出异常 
        throw; // 重新抛出异常 
    } 
    return dest; 
}

评论

此博客中的热门博文

想换个新路由器

这几天玩快手玩的入迷

用java生tensorflow的tfrecord文件