首页
社区
课程
招聘
[求助]c语言结构体成员问题
发表于: 2015-9-29 17:15 4738

[求助]c语言结构体成员问题

2015-9-29 17:15
4738
#include <windows.h>
#include <stdio.h>

struct sb
{
        char* sb名;
}二逼;

int main()
{
       

        *(byte*)二逼.sb名=0x01;<===这行老出错,不知为什麽
        printf("%s",二逼.sb名);
       

        getchar();

        return 0;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 16468
活跃值: (2493)
能力值: ( LV9,RANK:147 )
在线值:
发帖
回帖
粉丝
2
- -..............这名字
char* sb名; 只是个指针.需要指向某空间.你未初始化直接赋值.能不出错吗.定义个数组.或者malloc分配个空间.先指向.再赋值.

再看看C的书籍吧..
2015-9-29 17:21
0
雪    币: 204
活跃值: (911)
能力值: (RANK:1324 )
在线值:
发帖
回帖
粉丝
3
二逼->erbi
sb名->sbname
2015-9-29 17:23
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
修改后的代码:

#include <windows.h>
#include <stdio.h>

struct sb
{
  char* sbm;
}eb;

int main()
{
  

  eb.sbm="0x01";
  printf("%s",eb.sbm);
  

  getchar();

  return 0;
}
2015-9-29 19:49
0
雪    币: 35
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哥们...0x01  是单字节赋值..
2015-9-29 21:02
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
单字节:
#include <windows.h>
#include <stdio.h>

struct sb
{
  char sbm;     //单字节不用 *
}eb;

int main()
{
  

  eb.sbm=0x01;
  printf("%x",eb.sbm);
  

  getchar();

  return 0;
}
2015-9-29 21:13
0
雪    币: 290
活跃值: (41)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
char* sb名;
*sb名=0x01; // 这里有个小问题,sb 没确定位址

加个结构....
struct sb
{
  char* sb名;
}二逼;

二逼.(*sb名)=0x01;
2015-9-29 21:15
0
雪    币: 1258
活跃值: (1434)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
*(byte*)二逼.sb名=0x01;<===这行老出错,不知为什麽

因为是打算给 指针所指向的区域 赋值,
而你的指针就没初始化 (没指向任何区域),

你试试  二逼.sb名 = new char[1] , 然后 你在赋值~~~~~
2015-9-29 21:17
0
雪    币: 35
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
#include <windows.h>
#include <stdio.h>

struct sb
{
        char sbm[];     
}eb;

int main()
{
        eb.sbm[0]=0x0cc;
    eb.sbm[1]=0x0dd;
        printf("%s\n",eb.sbm);
        getchar();

        return 0;
}
用数组解决了
2015-9-29 22:51
0
雪    币: 704
活跃值: (3360)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
10
二楼已经讲的很清楚了,第一版的代码指针没有初始化,一般是0,你给0指针赋值肯定出错。
后面用数组代替,你的数组大小也没有初始化,可能也会存在不稳定的情况。
最后你自己的需求是什么都没说清楚,而且这么简单的问题自己不会F5调试一下吗?*(byte*)这么高大上的强制转换你都会写了,难道不会调试??
2015-9-30 09:22
0
雪    币: 35
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
大神别生气阿,谢谢你指导我
2015-9-30 12:45
0
雪    币: 704
活跃值: (3360)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
12
并没有生气啊,只是有点奇怪而已
2015-10-1 22:51
0
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
13
你让我想起: 曾经我也这样“坑”过
2015-10-2 01:08
0
游客
登录 | 注册 方可回帖
返回
//