读书人

该怎样复制一个带着数组的结构?该如何

发布时间: 2012-02-12 17:16:34 作者: rapoo

该怎样复制一个带着数组的结构?
定义了一个结构如下所示:

struct feanode
{
char feaname[5];
int type;/* 每个特性的取值类型,0为字符型,1为整型,2为浮点型 */
union range/* 每个特性的取值范围 */
{
char *c_range[3];
int i_range[3];
double d_range[3];
}range;
}feanode;

如果用memcpy复制一个这样的结构,那么在所复制的结构中,是否包含了那些数组,比如feaname数组,*c_range数组等。或着说,所复制的结构中那些数组是以指针形式存在,还是象int type这样以数据块的形式存在于所复制的结构中?另外,对于字符数组,如char *c_range[3],如果需要单独复制,利用strcpy,该怎样表示(char **ch1,**ch2)?
strcpy((ch2+j),(ch1+j)),还是strcpy(*(ch2+j),*(ch1+j))?

[解决办法]
如果是指针的话,复制的只是指针的值,他们指向的是同一块内存空间,这可能是你不想见到的,所以最好malloc一块空间将指针部分另外copy

读书人网 >C语言

热点推荐