编译运行成功,数据输入之后弹窗报错break:
Unhandled exception at 0x002b14e1 in project4b.exe: 0xC0000005: Access violation reading location 0xcccc0161.
下面是代码里求字串定位的函数:
int Index(SString *S,SString *T)
{int i,j,k,m,n;
m=T->length;\箭头定位在这里
n=S->length;
for(i=0;i<=n-m;i++)
{j=0;k=i;
while(jch[k]==T->ch[j])
{k++;
j++;}
if(j==m)return i;}
return -1;}
结构体定义:#define MaxStrSize 256
typedef struct{char ch[MaxStrSize];int length;}SString;
主函数在Index()函数前面部分:
SString *s,*p,*q;
int i,j,x,y;
printf("输入字符串\n");
scanf("%s",&s);
printf("输入需要替换的字符串\n");
scanf("%s",&p);
printf("输入替换后的字符串\n");
scanf("%s",&q);
x=Index(s,p);
怎么修改?
要不要给s,p,q用malloc分配空间?要的话能不能根据结构给个示例
s->length会自动获取吗?还是要写代码?要的话怎么写