| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2706 人关注过本帖, 1 人收藏
标题:我没有定义指针,但程序却说给空指针赋值?!!
取消只看楼主 加入收藏
YuriGagarin
Rank: 1
等 级:新手上路
帖 子:46
专家分:5
注 册:2008-2-22
结帖率:100%
收藏(1)
 问题点数:0 回复次数:2 
我没有定义指针,但程序却说给空指针赋值?!!
#include <stdio.h>
#include <string.h>
void main()
{
 char str0[20],str1[20],str2[20],string;
 scanf("%s%s%s",str0,str1,str2);
 {
  if (strcmp(str0,str1) > 0)
   strcpy(string,str0);
  else
   strcpy(string,str1);
 }
 if (strcmp(str2,string) > 0)
  strcpy(string,str2);
 printf("The largest string is:%s\n",string);
}

  该程序可以正确输出结果,但是在结果后面会出现一个提示,例如:
我输入:
CHINA
HOLLAND
AMERICA
显示结果:
HOLLAND
Null pointer assignment

  去百度查过了,这个提示的意思是:空指针赋值(定义了指针,但没有分配内存空间,指针是无效的)。
  我还没有学到指针那一章,实在是看不懂,这程序里究竟那里定义指针了??
搜索更多相关主题的帖子: 赋值 指针 定义 
2008-07-28 10:21
YuriGagarin
Rank: 1
等 级:新手上路
帖 子:46
专家分:5
注 册:2008-2-22
收藏
得分:0 
Thank you very mcuh!
#include <stdio.h>
#include <string.h>
void main()
{
 char str0[20],str1[20],str2[20],[un]string[20][/un];
 scanf("%s%s%s",str0,str1,str2);
 {
  if (strcmp(str0,str1) > 0)
   strcpy(string,str0);
  else
   strcpy(string,str1);
 }
 if (strcmp(str2,string) > 0)
  strcpy(string,str2);
 printf("The largest string is:%s\n",string);
}

  搞定了!!已经不报错了!!

  想了三天,都没有看出个四五六来!
  原来是没有定义数组长度?!!
2008-07-28 11:25
YuriGagarin
Rank: 1
等 级:新手上路
帖 子:46
专家分:5
注 册:2008-2-22
收藏
得分:0 
补充问题:
我这个程序能算是3个“一维数组”的组合吗?
2008-07-30 12:24
快速回复:我没有定义指针,但程序却说给空指针赋值?!!
数据加载中...
 
   



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

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