免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2097 | 回复: 19
打印 上一主题 下一主题

请教一个segmentation fault的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-10 10:43 |只看该作者 |倒序浏览
int f_readhcs(char *cfgini,char *var,char *varvalue)
{       
        strXTCS lstr_cssz[100];
        int i, nCs;       
        memset(lstr_cssz,0,sizeof(lstr_cssz));
        nCs=uiReadAppFile(HXTCS_FILE_NAME,&lstr_cssz[0],sizeof(lstr_cssz[0]),100);/*将文件内容读入到结构数组*/
        for(i=0; i<nCs; i++)
                if(strcmp(lstr_cssz.csbz,var) == 0)
                {       
                        strcpy(varvalue,lstr_cssz.csz);
                        return 1;
                        break;
                }
        return 0;
}       




为什么我执行memset(&ls_jzny[0],0,sizeof(ls_jzny));
                        if(f_readhcs(HXTCS_FILE_NAME,"dqny",ls_jzny)==1)
                                                li_jzny=atoi(ls_jzny); 这一段的时间会segmentation fault呢?

int li_jzny;
char ls_jzny[10];
UINT uiReadAppFile(UCHAR *name,void *buf,UINT len,UINT max)
{
UINT record,j;
FILE *file;
file=fopen(name,"rb";
record=0;
if(file!=NULL)
{
do
{
j=fread(buf+record*len,len,1,file);
if(!j)
break;
record++;
if(record>;=max)
break;;
}while(1);
fclose(file);
}
return(record);
}

typedef struct
{
        UCHAR cslb[2];       
        UCHAR csbz[21];       
        UCHAR csz[61];       
}strXTCS;

论坛徽章:
0
2 [报告]
发表于 2005-09-10 10:44 |只看该作者

请教一个segmentation fault的问题

char ls_jzny[10];li_li_jzny;

论坛徽章:
0
3 [报告]
发表于 2005-09-10 10:51 |只看该作者

请教一个segmentation fault的问题

strXTCS lstr_cssz[100];
结构的空间申请没?

论坛徽章:
0
4 [报告]
发表于 2005-09-10 10:52 |只看该作者

请教一个segmentation fault的问题

[quote]原帖由 "luojiannx"]结构的空间申请没?[/quote 发表:



我直接定义的结构啊

论坛徽章:
0
5 [报告]
发表于 2005-09-10 10:54 |只看该作者

请教一个segmentation fault的问题

原帖由 "steve2005" 发表:



我直接定义的结构啊


那你告诉我他占了多少空间

有这样用的么,告诉我下 我有点孤陋寡闻

论坛徽章:
0
6 [报告]
发表于 2005-09-10 11:01 |只看该作者

请教一个segmentation fault的问题

原帖由 "luojiannx" 发表:


那你告诉我他占了多少空间

有这样用的么,告诉我下 我有点孤陋寡闻


啊!我一向都是这样用的,不用再去申请空间的.

这个占用得很小的,100Byte*100条嘛!那个函数应该是没有什么问题的,我在别的地方调用都不出错的.
我也很怀疑是空间不够的问题,我也试着去改变别的东西的大小了,但别的改小了还是一样报错.

论坛徽章:
0
7 [报告]
发表于 2005-09-10 11:30 |只看该作者

请教一个segmentation fault的问题

int f_ireadhcs(char *cfgini,char *var)
{       
        strXTCS lstr_cssz[100];
        int i, nCs;       
        memset(lstr_cssz,0,sizeof(lstr_cssz));
        if(gi_debug)
                msgbox("f_ireadhcs begin...";
        nCs=uiReadAppFile(HXTCS_FILE_NAME,&lstr_cssz[0],sizeof(lstr_cssz[0]),100);
        for(i=0; i<nCs; i++)
                if(strcmp(lstr_cssz.csbz,var) == 0)
                {       
                        if(gi_debug)
                        msgbox_str(lstr_cssz.csz,"the match csz = ";
                        return atoi(lstr_cssz.csz);
                        break;
                }
        return 0;
}



li_jzny=f_ireadhcs(HXTCS_FILE_NAME,"dqny";
现在偶改了个函数,改成了这个样子。
我自己感觉好象是加上了if(gi_debug) msgbox("";之后才好的,真是怪啊,百思不得其解

论坛徽章:
0
8 [报告]
发表于 2005-09-10 11:35 |只看该作者

请教一个segmentation fault的问题

lstr_cssz.csbz??????????

论坛徽章:
0
9 [报告]
发表于 2005-09-10 12:21 |只看该作者

请教一个segmentation fault的问题

[quote]原帖由 "luojiannx"]浚浚浚浚浚浚浚浚浚縖/quote 发表:
有什么问题吗?哪里写错了?

论坛徽章:
0
10 [报告]
发表于 2005-09-10 12:25 |只看该作者

请教一个segmentation fault的问题

我的意思就是你有些该申请空间的,没有申请

你检查一下每次使用结构/指针的时候是不是都申请空间了

没法跟你沟通下去了
再说俺也根本无法调试你的程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP