标题:求助一个结构体指针问题,代码只有五行
只看楼主
jdvschor
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-3
结帖率:66.67%
已结贴  问题点数:15 回复次数:5 
求助一个结构体指针问题,代码只有五行
#include
#include
#include

//#pragma pack(1)

typedef struct InterTemp
{   
    char c[20];
    unsigned int  a;
    unsigned char b;
   

}st_temp,*st_ttemp;


typedef struct ST_aTemp
{
    char c[20];
    unsigned int  a;   
    ttemp atemp;


}st_natemp,*st_ptr_atemp;

int main()
{


    st_ttemp nptr;
    st_ptr_atemp st_ptr_a;
    st_natemp st_natemp;

    char buff[20]="hello world!!";
    char t_buff[20] = "above the well";
 
    // temp * atemp = (temp*)malloc(sizeof(1024));

       strcpy(st_natemp.c,buff);
       strcpy(st_natemp.atemp->c,t_buff);
   
    以下省略一万行
   
    return  0;
}


问题: 如何给一个指向结构体数组的指针赋值,我用strcpy(st_natemp.atemp->c,t_buff); 编译时不报错,调试执行时会提示内存溢出,还有如果我把两个结构体中的char c[20]都改成 unsigned char c[20] ,同时 吧 main 函数中的 char c[20] 也改成 unsigned char c[20]  编译时就会报错 ,提示 cannot convert
'unsigned char [20]' to 'char * '  不理解 我都改成 unsigned char 了 为何还有 char * ,希望各位大大 帮忙找出原因,能帮我改下更好
      
搜索更多相关主题的帖子: include 结构体 hello world 五行 
2011-11-03 10:01
DefineFeel
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:136
注 册:2011-10-18
得分:10 

是不是写错了
typedef struct ST_aTemp
{
    char c[20];
    unsigned int  a;   
    ttemp atemp;


}st_natemp,*st_ptr_atemp;

[ 本帖最后由 DefineFeel 于 2011-11-3 10:44 编辑 ]
2011-11-03 10:24
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
得分:5 
unsigned char 有这种数据类型吗?
2011-11-03 10:24
DefineFeel
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:136
注 册:2011-10-18
得分:0 
main函数里面这样写

   
    st_ttemp nptr;
    st_ptr_atemp st_ptr_a;
    st_natemp st_natemp;
   
    char buff[20]="hello world!!";
    char t_buff[20] = "above the well";
   
    // temp * atemp = (temp*)malloc(sizeof(1024));
   
    strcpy(st_natemp.c,buff);
    st_natemp.atemp = (struct InterTemp*)malloc(sizeof(struct InterTemp));
    strcpy(st_natemp.atemp->c,t_buff);
2011-11-03 10:47
DefineFeel
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:136
注 册:2011-10-18
得分:0 
还有就是
typedef struct ST_aTemp
{
    char c[20];
    unsigned int  a;   
    st_ttemp atemp;//开始是ttemp atemp;


}st_natemp,*st_ptr_atemp;
2011-11-03 10:48
jdvschor
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-3
得分:0 
恩 ,多谢hero 的提醒 ,有点犯傻了 ,同时也感谢Define的解答 ,thank you
2011-11-03 14:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-354136-1-1.html




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

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