首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-02-12 
该怎样复制一个带着数组的结构?定义了一个结构如下所示:structfeanode{charfeaname[5]inttype/*每个特性

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

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

热点排行