memcpy 的不解
我看了一篇博文:
C语言实现 vector( 动态数组) 改进版
地址:http://blog.csdn.net/dengxu11/article/details/7311820
有一点不明白,在下面代码中
int cvector_pushback(const cvector cv, void *memb)
{
if (cv->cv_len >= cv->cv_tot_len)
{
void *pd_sav = cv->cv_pdata;
cv->cv_tot_len <<= EXPANED_VAL;
cv->cv_pdata = realloc(cv->cv_pdata, cv->cv_tot_len * cv->cv_size);
if (!cv->cv_pdata)
{
cv->cv_pdata = pd_sav;
cv->cv_tot_len >>= EXPANED_VAL;
return CVEPUSHBACK;
}
}
//把memeb中的数据复制到cv_pdata的后面。从memeb拷贝cv_size个字节到cv_pdata的最后。
memcpy((char *)cv->cv_pdata + cv->cv_len * cv->cv_size, memb, cv->cv_size);
cv->cv_len++;
return CVESUCCESS;
}