首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个程序你们运作有错么

2013-11-19 
这个程序你们运行有错么大家看看你们这个程序运行会出错么#include stdafx.h#include stdio.hvoid Get

这个程序你们运行有错么
大家看看你们这个程序运行会出错么

#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;
}

  
   我用的编译环境是VC 60 控制台  
  高分求大神赐教!
[解决办法]
引用:

//%p打印地址!printf格式化输出函数!
 printf("%p",p);

+1

不过楼主的代码有其他问题,next数组有溢出,导致栈被破坏无法正常退出程序的问题。

热点排行