喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station 棒棒哒纯文字二次元技术社区

正文

程序停止工作

作者:Ti.定下契约
[i=s] 本帖最后由 Ti.定下契约 于 2015-7-28 12:21 编辑 #include <stdio.h> #include <string.h> #define NUM 81 char input(char *array,char ch,int num); int main(void) { char arr_ch[NUM],ch,*p; gets(arr_ch); ch=getchar(); p=input(arr_ch,ch,strlen(arr_ch)); printf("%p\n",p); return 0; } char input(char *array,char ch,int num) { char chs[NUM],*p; int i,j,n,x; puts("************"); fflush(stdin); gets(chs); printf("%s\n",chs); for(i=0;i<NUM;i++) { printf("%d,%c,%c\n",i,array[0],chs); if(array[0]==chs) for(j=i,n=0;n<num;j++,n++) { printf("%d,%c,%c\n",j,array[n],chs[j]); if(chs[j]!=array[n]) break; if(n==num-1) for(x=i,n=0;n<num;x++,n++) { printf("%c,%c\n",ch,chs[x]);→ → → 好像是到这里程序就停止了 if(chs[x]==ch) { p=chs[x]; printf("%c\n",*p); return p; break; } else return '\0'; } } } } 结果 array r ************ the array the array 0,a,t 1,a,h 2,a,e 3,a, 4,a,a 4,a,a 5,r,r 6,r,r 7,a,a 8,y,y r,a 后面就没了@@6!!@@6!!@@6!!

回复

作者:张全蛋
你这程序目测就有一堆奇怪的地方, 比如: (1)“printf("%d,%c,%c\n",i,array[0],chs);”,用%c(char字符)去打印chs这个地址值,main函数里的%p控制符我也没看懂是要干啥 (2)“if(array[0]==chs)”,拿char数组元素(1字节)跟地址值(4字节)做比较 (3)“if(n==num-1)”,用strlen计算出来的数组长度本身就不包含最后的NULL,这里传参过来的num减1是几个意思? (4)“printf("%c\n",*p); return p;”,明明p是指针变量,函数返回值是char型(1字节),return 却返回指针变量p的值(4字节) 麻烦你说下你的程序要实现的大致功能,你贴出来的代码实在是错误百出。。。。。。
查看回复
上一页
下一页
0%
站点地图友情链接:
喵宅苑
喵空间社区程序
喵宅苑 静态版
宅喵RPG地图编辑器
络合兔
Lanzainc
技术宅
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の日常
魂研社
Nothentai
0xffff
欲望之花
泽泽社长
淀粉月刊
HAYOU
红客联盟
异次元
轻之国度
神奇宝贝新生代
游戏狗
口袋双子星
我的世界论坛
梦次元
动漫东东
动漫国际
精艺论坛
78动漫
吐槽弹幕网
漫客栈