| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 461 人关注过本帖
标题:请各位高手帮我查查这个程序问题在哪?
只看楼主 加入收藏
益华
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2011-5-12
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:7 
请各位高手帮我查查这个程序问题在哪?
#include<stdio.h>
#define size 100
void main()
{
  char*index(char[],char);
  char message[size];
  char *p,c;
  printf("\n Enter a sentence:");
  gets(message);
  printf("\n Enter a charcter:");
  scanf("%c",&c);
  p=index(message,c);
  printf("%d\n",*p);
}
char*index(char *str,char c);
{
 int i=1,found=0;
 char *m;
 while(*str!='\0'&&!found)
 {
   if(*str==c)
   {
     found=1;
     m=&i;
     return(m);
   }
   str++;
   i++;
 }
}
搜索更多相关主题的帖子: return index 
2011-05-12 22:16
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:5 
char*index(char *str,char c);
后面不应该有一个分号,这样的问题是语法问题,编译器可以直接提示出来,这个不算什么问题,主要是你这个函数是一个char*也就是这个函数要返回一个char类型的指针,而你的这个函数并没有返回指针!

愿用余生致力编程
2011-05-12 22:26
益华
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2011-5-12
收藏
得分:0 
m是一个存放地址的变量,返回的是指针啊
2011-05-13 14:25
wavewind
Rank: 3Rank: 3
来 自:浙江
等 级:论坛游侠
帖 子:34
专家分:101
注 册:2011-5-13
收藏
得分:0 
我看了看,好像是判读数组中有几个和c代表的字母一样的!是不是搞这个东西啊?
2011-05-13 15:33
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
请问楼主此程序想干什么?
2011-05-13 15:41
Heart→M鹏
Rank: 2
等 级:论坛游民
帖 子:80
专家分:94
注 册:2011-5-13
收藏
得分:0 
你想用这个程序干嘛啊!!!没注释啊!!!
2011-05-13 15:44
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:10 
回复 3楼 益华
开始的时候我没有怎么仔细看,对于返回指针的函数来说,不能够返回栈的指针,这是因为栈的指针在函数调用完毕的时候会被释放了,这样会导致返回的指针式无效的!

在你的这个程序中返回的m = &i,而你的这个i的值是在栈中定义的,这样返回m的值(指针)是无效的!

愿用余生致力编程
2011-05-13 15:49
Heart→M鹏
Rank: 2
等 级:论坛游民
帖 子:80
专家分:94
注 册:2011-5-13
收藏
得分:5 
  m=&i;
这个你想干嘛啊?貌似是错的 改了之后调试没错,可是我不知道你想干什么
2011-05-13 15:52
快速回复:请各位高手帮我查查这个程序问题在哪?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023957 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved