注册 登录
编程论坛 C++教室

c语言,结构体中怎么把 elem[20]赋值给 elem2[20]

qq1274371820 发布于 2014-11-16 13:37, 547 次点击

      在main()函数中给elem[]赋值,然后在fuzhi()函数中把elem[]中的数赋值给elem2[],但结果elem2[]中是乱码

     求解

#include"stdio.h"
#include"stdlib.h"
typedef struct
{
    int elem[20];
    int length;
    int elem2[20];
}SqList;
int fuzhi(SqList *L)
{
    SqList *s;
    int j;
    s=(SqList *)malloc(sizeof(SqList));
    for(j=0;j<=20;j++)
    {
         s->elem2[j]=L->elem[j];
    }
}
int displist(SqList *ST)
{
    int i;
    fuzhi(&ST);
    for(i=0;i<=20;i++)
    {
        printf("%d\n",ST->elem2[i]);
    }
}
main()
{
    int i,x;
    SqList ST;
    SqList *s;
    s=(SqList *)malloc(sizeof(SqList));
    printf("请输入顺序表的长度:");
    scanf("%d",&ST.length);
    for(i=0;i<=ST.length-1;i++)
    {
        ST.elem[i]=rand()%100;
        printf("%d\n",ST.elem[i]);
    }
    printf("数组elem2中的数为:\n");
    displist(&ST);
}
5 回复
#2
xufan2014-11-16 16:12
那是因为你的ST.elem2的内存空间没进行赋值!!! ST和s的内存空间不是同一个!!!!
#3
qq12743718202014-11-16 23:43
回复 2 楼 xufan


            怎么改呢-。-
#4
stop12042014-11-17 07:56
相同结构可以直接赋值  a = b
#5
abc82387782014-11-18 16:07
a=b,不就赋值了吗
#6
qq12743718202014-11-20 13:50


          要求是elem[20]赋值给elem2[20],然后在displist()函数中读出elem2[]
1