全局变量的使用问题
时间:2010-07-30
来源:互联网
- struct ICS
- {
- char *ilegalcharacters[8000];
- };
- struct ICS ics;
- int main ()
- {
- memset(&ics, 0, sizeof(struct ICS));//这行到是正常
- .........
- if (pid2s=fork()!=0)
- {
- sttr();//数据进程
- }
- }
-
- void sttr()
- {
- ........
- if(pthread_create(&tid,&attr,(void *)userinfo,act))
- {
- perror("error userinfo");
- }
- }
-
-
- void * userinfo(char* act)
- {
- ............
- memset(ics->ilegalcharacters,'\0',200);
- strcpy(ics->ilegalcharacters,(char*)&tmp); //编译这行出错 为什么呢?
- }
错误:‘ics’ 未声明 (在此函数内第一次使用)
ics不是全局的吗?怎么这里访问不到?
作者: jd808 发布时间: 2010-07-30
void * userinfo(char* act)没定义在struct ICS ics;前面?
不对,ics不是指针啊,成员引用应该用.而不是->
作者: liwangli1983 发布时间: 2010-07-30
作者: liwangli1983 发布时间: 2010-07-30
作者: jd808 发布时间: 2010-07-30
- struct ICS
- {
-
- char *ilegalcharacters[8000];
-
- };
- struct ICS ics;
- memset(ics.ilegalcharacters,'\0',200);
- strcpy(ics->ilegalcharacters,(char*)&tmp);
- strcpy((char *)(ics.ilegalcharacters),(char*)&tmp);
也许楼主想这样:
- ics.ilegalcharacters[0] = strdup((char*)&tmp);
- struct ICS
- {
-
- char ilegalcharacters[8000];
-
- };
- struct ICS ics;
本人的只是猜想一下!呵呵
作者: zhangsuozhu 发布时间: 2010-07-30
memset(ics->ilegalcharacters,'\0',200);
改成:
memset(ics.ilegalcharacters,'\0',200);
作者: liwangli1983 发布时间: 2010-07-30
改成:
memset(ics.ilegalcharacters,'\0',200);
liwangli1983 发表于 2010-07-30 21:59
说的对。我还真没看出来
作者: zhangsuozhu 发布时间: 2010-07-30
zhangsuozhu 发表于 2010-07-30 22:02
我一开始也是......
因为很少直接定义struct类型变量,一般都是定义struct类型指针,所以看->都很习惯了......
作者: liwangli1983 发布时间: 2010-07-30
定义8000个指针也比较怪异
作者: zhangsuozhu 发布时间: 2010-07-30
定义8000个指针也比较怪异
zhangsuozhu 发表于 2010-07-30 22:06
呵呵,人家有需要嘛
作者: liwangli1983 发布时间: 2010-07-30
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28