C语言数据结构中KMP算法编程中的问题
发布网友
发布时间:2022-05-26 12:28
我来回答
共2个回答
热心网友
时间:2023-11-08 01:38
问题出在void StrCreate(Sqstring *s)这个函数中,
你在函数内给形参malloc内存,这些内存在函数返回时会被回收,因此相当于你没有分配内存。
解决的方法就是在main中分配内存,而不是在create中,或者也可以将create函数改一下:
Sqstring *StrCreate()
{
int i;
s=(Sqstring*)malloc(sizeof(Sqstring));
printf("请输入字符串(长度不超过%d)!\n",Maxsize);
for(i=0;i<Maxsize;i++)
{
scanf("%c",s->data[i]);
if(s->data[i]=='1')
break;
}
s->length=i;
return s;
}
调用时先声明一个串指针
Sqstring *s;
s = StrCreate();
这样就可以了
热心网友
时间:2023-11-08 01:39
没有KMPsearch(s,t),BFsearch(s,t)这2个函数,无法帮你解决追问不是我只输入了一个数据就崩溃了,应该这部分就有问题