c++ 结构体拷贝/赋值

结构体拷贝时默认调用各个成员的拷贝赋值函数。

结构体中有数组,拷贝时使用memcpy或使用"="进行赋值都可以。memcpy和"="都可以将数组中的元素逐一赋值到目标结构体中的数组中。

结构体中有vector,只能使用"="进行赋值。使用"="可以调用vector的拷贝构造函数,将源结构体对象中vector的元素拷贝到目标结构体对象。而使用memcpy时,不会考虑到vertor的结构问题。

结构体中有指针,使用memcpy或"=",都只能拷贝指针的值,即只拷贝地址,而不会重新申请一块内存空间来拷贝指针指向的内容,因为源结构体对象的指针和目标结构体对象的指针指向同一块内存,可能会存在内存问题,如重复delete

你可能感兴趣的:(c++,数据结构,开发语言)