| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 359 人关注过本帖
标题:C语言问题。。
只看楼主 加入收藏
a86819318
Rank: 2
等 级:论坛游民
帖 子:63
专家分:10
注 册:2009-10-8
结帖率:40%
收藏
 问题点数:0 回复次数:1 
C语言问题。。
#include<stdio.h>
#include<string.h>
void fun(char *max)
{
int i=0,j=0,num=3;
char *p[3];
while(i<=2)
{
gets(p[i]);
i++;
}
for(i=0;i<=2;i++)
{
 if(strlen(p[j])<strlen(p[i]))
   j=i;
   i++;
}
max=p[j];
}
void main()
{
    char *max;
    fun(max);
    printf("%s",max);
}
运行时输出有问题的。。。。哪里出错了?
搜索更多相关主题的帖子: C语言 
2010-01-26 09:16
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 

#include<stdio.h>
#include<string.h>
void fun(char a[][20],char **max)
{
    int i=0,j=0,num=3;
    char *p[3];
    for(i=0;i<=2;i++)
        p[i]=a[i];
    i=0;
    while(i<=2)
    {
        gets(p[i]);                 //--错:没给指针p[i]申请空间,(此时p[i]称为失控指针)    所以输入第一个串时就已经出错了。            
        i++;
    }
    for(i=0;i<=2;i++)
    {
        if(strlen(p[j])<strlen(p[i]))
           j=i;
           i++;
    }
    *max=p[j];              //--注意:形参的传递是什么值
void main()
{
    char *max;
    char a[3][20];
    fun(a,&max);
    printf("%s\n",max);
}

2010-01-26 11:13
快速回复:C语言问题。。
数据加载中...
 
   



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

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