这个程序你们运行有错么
大家看看你们这个程序运行会出错么
#include "stdafx.h"
#include "stdio.h"
void Get_Next(char *T,int *next)
{
int i=1,j=0;
next[0]=0;
next[1]=0;
char *p=T;
while (*T)
{
//这里的T 在自己加 所以要多一个P
//因为题目要求不能求子串的长度
//然后这里的字符串给近来从0开始 但是这里计算的是从1开始
if(j==0||p[j-1]==p[i-1])
{
i++;
j++;
next[i]=j;
T++;
}
else
j=next[j];
}
}
int main(int argc, char* argv[])
{
//下面的代码是子串和主串做比较的一部分
char a[10]="abaabc";
char b[40]="abaaabaabcababaabc";
char *p=b;
printf("%c",*p);
printf("%ld",p);
//printf("%c",*q);
int next[7];
int i=0;
int count=0;
Get_Next(a,next);
printf("%ld",p);//我的问题出在这里,每次运行到这里P就没有值了,但是前面的根本没改变过,函数传参也没用他 ,纳闷几天了
printf("%c",*p);
return 0;
}