| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖
标题:[求助]运行结果出现null pointer assignment,怎么办?
只看楼主 加入收藏
海洋天使
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-5-14
收藏
 问题点数:0 回复次数:0 
[求助]运行结果出现null pointer assignment,怎么办?

我编写了关于串的程序,想要实现在主串中是否有字符串与子串匹配的功能。运行的结果正确,可是每次结果后面都有null pointer assignment,我检查一晚上还是查不出在哪里出错,不知有哪位好心人帮我解答。

程序代码:
#include<malloc.h>
#include<string.h>
#include<stdio.h>

typedef struct
{char *str;
int length;
}string;

strassign(string *s,char *chars)
{int i,j;

if(s->str) free(s->str);
i=strlen(chars);
if(!i)
{s->str=0;s->length=0;}
else
{s->str=(char *)malloc(i*sizeof(char));
if(!s->str) printf("error");
for(j=0;j<i;j++)
s->str[j]=chars[j];
s->length=i;
}
}

int indexFL(string *s,string *t,int pos)
{int i,j,k;
int slength,tlength;
char patstartchar,patendchar;
slength=s->length;tlength=t->length;
i=pos;
patstartchar=t->str[0];
patendchar=t->str[t->length-1];
while(i<=slength-tlength)
{if(s->str[i]!=patstartchar) ++i;
else if(s->str[i+tlength-1]!=patendchar) ++i;
else
{k=1;j=1;
while(j<tlength-1 && s->str[i+k]==t->str[j])
{++k;++j;}
if(j==tlength-1) return i+1;
else ++i;
}
}
return 0;
}

void strprint(string *s)
{int i;
for(i=0;i<s->length;i++)
printf("%c",s->str[i]);
printf("\n");
}

main()
{string *s,*t;
char char1[100],char2[100];
int pos;
printf("\nInput father string:");
gets(char1);
strassign(s,char1);
printf("\nInput child string:");
gets(char2);
strassign(t,char2);
printf("\nPos=");
scanf("%d",&pos);
printf("\nThe father string:");
strprint(s);
printf("\nThe child string:");
strprint(t);
printf("\nThe position:%d",indexFL(s,t,pos));
}

搜索更多相关主题的帖子: assignment pointer null 结果 运行 
2006-05-14 00:54
快速回复:[求助]运行结果出现null pointer assignment,怎么办?
数据加载中...
 
   



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

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