lin13a321 发表于 2013-8-14 16:14

结构体指针问题

本帖最后由 lin13a321 于 2013-8-14 16:28 编辑

初学者求指点
定义一个结构体
typedef struct
{
      unsigned char* way2;   
      unsigned char* Protocol2;    //设置网络服务类型 0为TCP1为UDP
      unsigned char* CS2;          //设置C/S模式   0为客户端1为服务器端
      unsigned char* ServerIP2;    //设置服务器IP地址
      unsigned char* Port_NUM2;    //设置服务器端口
      
}Config_Server;//服务器设置
然后写了一个函数
intWIFI_Server(unsigned char* way,unsigned char* Protocol,unsigned char* CS,unsigned char* ServerIP,unsigned char* Port_NUM)
如果我要调用结构体中的unsigned char* way2   把它的地址值赋给 函数变量unsigned char* way 怎么搞
这样为什么不对:
Config_Server   *Server;
way=Server->way2;

如果别人用这个结构体调用 并且给里面的变量赋值所赋的值是不是可以传递给intWIFI_Server()函数中的变量

kkong522 发表于 2013-8-14 17:09

你的Server结构体初始化了么?

418417996 发表于 2013-8-14 19:05

在不在啊?是不是 你得定义一个unsigned char **way?

林粼粼 发表于 2013-8-15 11:35

参数way传进去只是个副本,所以way=Server->way2; 退出函数后就相当于没执行过。





airwill 发表于 2013-8-15 11:48

如果我要调用结构体中的unsigned char* way2   把它的地址值赋给 函数变量unsigned char* way 怎么搞

Config_Server   *Server;
WIFI_Server(Server-> way2, ...);

lin13a321 发表于 2013-8-16 09:45

airwill 发表于 2013-8-15 11:48 static/image/common/back.gif
如果我要调用结构体中的unsigned char* way2   把它的地址值赋给 函数变量unsigned char* way 怎么搞

Conf ...

恩,这样我知道,但是我的意思是如果我把WIFI_Server(unsigned char* way,,..) 作为一个 接口函数;在调用该函数的时候,如何通过结构体 变量赋值来随意给WIFI_Server(unsigned char* way,,..)unsigned char* way赋值,比如WIFI_Server(unsigned char* way,,..) 里面有个数据发送,如果我定义一个字符串*P="AAAAA",想通过调用 WIFI_Server(unsigned char* way,,..) 把数据发出去然后我这样Config_Server   *Server;Server-> way=p;再这样调用WIFI_Server(Server-> way,,....) 就能把字符串“AAAAA”发出去吗??貌似直接WIFI_Server(*p,,...) 是不是就行了那还定义个变量结构体干什么!!

airwill 发表于 2013-8-16 10:03

Config_Server   *Server;Server-> way=p;再调用WIFI_Server(Server-> way,,....) 就能把字符串“AAAAA”发出去
正确.

不过我感觉应该有更简单的办法解决这个问题.
比如:WIFI_Server(p,,....)
是否满足你的要求, 得具体看你的程序处理了
页: [1]
查看完整版本: 结构体指针问题