| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 467 人关注过本帖
标题:[求助]全局结构体成员赋值问题
只看楼主 加入收藏
govboy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
[求助]全局结构体成员赋值问题
我在全局声明了一个结构体
声明如下
struct Prov
{
    char name[8];
    char chargeman[15];
    char tele[15];
    struct Basic *link;
    struct Prov *next;
};
typedef struct Prov PRO;
PRO *f,*fst,fir;

然后在一个函数内引用的时候:
void Tes()
{
    char tag[20];
    struct test
    {
        char na[10];
        struct Prov *p;
        struct test *t;
    }*te,he;
    typedef struct test TES;
    te=&he;
    he.p=&fir;
    he.p->name="aaa";//此处程序报错说必要是可修改的左值。。。
    system("pause");
}


======================
纠结这个问题很久了 = =。。求帮助!!谢谢!!!!

[ 本帖最后由 govboy 于 2013-8-21 13:38 编辑 ]
搜索更多相关主题的帖子: 结构体 
2013-08-21 13:36
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:10 
最主要的错误是你竟然给数组名字赋值!
你应该定义PRO结构体,然后用strcpy赋值!
    PRO  pp;
    fir = &pp;
    he.p=&fir;
    strcpy(he.p->name,"aaa");






[ 本帖最后由 liufashuai 于 2013-8-21 13:47 编辑 ]

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-21 13:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
貌似字符数组不能直接用 = 赋值  有些高级语言如c# vfp 啥的 重载了= 可以直接使用 = 赋值
c有c 的特色

DO IT YOURSELF !
2013-08-21 13:45
govboy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-21
收藏
得分:0 
回复 2楼 liufashuai
谢谢!!!根据你的方法这一部分确实可以用了
但是实际上这个函数时我专门写出来测试的 我遇到的问题是这样的。。

我在全局声明创建了一个结构体链表,然后在某一个函数里我要实现搜索和修改的功能
我的做法是搜索后(目前看来搜索过程没问题),再该函数下创建一个结构体,成员之一是指向链表的指针,并用此指针指向搜索出来的链表
然后通过这么一段来赋值:
程序代码:
            switch(t)
            {
            case 0:
                break;
            case 1:
                scanf("%s",edi8);
                strcpy(hea->link->name,edi8);
                break;
            case 2:
                scanf("%s",edi15);
                strcpy(hea->link->chargeman,edi15);
                break;

其中edi8 edi15分别表示表示8个单位的字符数组和15个单位的字符数组,与其对应的dest函数的空间大小是相等的。。。

但是程序运行到这一块时就报错了  我以为是赋值方法不对 所以发了这个帖子求助,但是更改了赋值方法还是报错。。

然后就是想问一下,链表节点中的成员数值究竟能不能修改?

问题很长,谢谢了!!!
2013-08-21 14:00
govboy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-21
收藏
得分:0 
回复 3楼 wp231957
拜托你也帮忙看看这个问题吧~~谢谢了!!!

我在全局声明创建了一个结构体链表,然后在某一个函数里我要实现搜索和修改的功能
我的做法是搜索后(目前看来搜索过程没问题),再该函数下创建一个结构体,成员之一是指向链表的指针,并用此指针指向搜索出来的链表
然后通过这么一段来赋值:
程序代码:
程序代码:
            switch(t)
            {
            case 0:
                break;
            case 1:
                scanf("%s",edi8);
                strcpy(hea->link->name,edi8);
                break;
            case 2:
                scanf("%s",edi15);
                strcpy(hea->link->chargeman,edi15);
                break;


其中edi8 edi15分别表示表示8个单位的字符数组和15个单位的字符数组,与其对应的dest函数的空间大小是相等的。。。

但是程序运行到这一块时就报错了  我以为是赋值方法不对 所以发了这个帖子求助,但是更改了赋值方法还是报错。。

然后就是想问一下,链表节点中的成员数值究竟能不能修改?

谢谢!!!
2013-08-21 14:01
govboy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-21
收藏
得分:0 
回复 3楼 wp231957
已经解决了 是之前有个小错误~~谢谢哈
2013-08-21 14:16
快速回复:[求助]全局结构体成员赋值问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043686 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved