| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1688 人关注过本帖
标题:为什么程序执行后回多出来Null pointer assignment 这句话
只看楼主 加入收藏
ZZCCY
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-5-1
收藏
 问题点数:0 回复次数:10 
为什么程序执行后回多出来Null pointer assignment 这句话

为什么这个程序每次执行完都会多出一句:Null pointer assignment,不知道为什么,但返回值并没有错,请高手给予迷津指点:
int Strcmp(char *s1,char *s2)
{
int c,i=0;
while((*(s1+i)!='\0')&&(*(s2+i)!='\0'))
{
if(*(s1+i)!=*(s2+i)) break;
i++;
}
c=*(s1+i)-*(s2+i);
return(c);
}

main()
{
static char *str[5];
int i,c;
char *s1, *s2;
for(i=0;i<5;i++)
str[i]=(char *)malloc((strlen(str[i])+1));
for(i=0;i<2;i++)
scanf("%s",str[i]);
s1=str[0],s2=str[1];
c=Strcmp(s1,s2);
printf("%d",c);
for(i=0;i<5;i++)
free(str[i]);
}

[此贴子已经被作者于2006-5-6 22:22:42编辑过]

搜索更多相关主题的帖子: assignment pointer Null char 
2006-05-06 22:22
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
str[i]=(char *)malloc((strlen(str[i])+1));


str[i]是多少

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-06 22:29
tellingme
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-3-9
收藏
得分:0 

我用WIN-TC运行怎么没有错呢
请指教


normal is boring/you never plan the future by the past
2006-05-06 22:40
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

自己对照,认为不必要的东西已经去掉
[CODE]
#include "stdio.h"
#include "malloc.h"
#define N 20

int Strcmp(char *str1,char *str2)
{
for(;*str1==*str2;str1++,str2++)
;
return (*str1-*str2);
}

int main()
{
char *str[2];
int i;

for(i=0;i<2;i++)
str[i]=(char *)malloc( sizeof(char)*N );
for(i=0;i<2;i++)
gets(str[i]);
printf("%d\n",Strcmp(str[0],str[1]) );
for(i=0;i<2;i++)
free(str[i]);
return 0;
}



[/CODE]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-06 22:43
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

说明:
基于良好的习惯培养,不要总不加头文件,所以TC系列这方面其实不好
char *str; 再未分配空间前,它只指向一个字节大小的空间,而不是串指针
只有两个串,申请了5段空间,浪费!
用gets()更好,可录取空格
s1,s2多余
自定义函数很乱



叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-06 22:48
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
楼上的你人太好,程序都出来了,告诉他什么错了不就完了吗?她要是MM给写个程序还行

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-06 22:50
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

我对ZZCCY 有偏爱~ 他比较听话,而且谦虚


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-06 22:52
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-06 22:52
ZZCCY
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-5-1
收藏
得分:0 

问题解决了,感谢feng1256,每次都是一针见血的指出问题,让我收获很多.
不过我发现我的问题真的很大啊,太多问题了,通过大家的帮助,我会慢慢改正,提高的.


程序 是一门语言的艺术,讲究学练读写!
2006-05-07 00:11
ZZCCY
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-5-1
收藏
得分:0 

来论坛快一周了,感慨颇多,收获更多,简单总结一下吧

1
、区别于库函数,自定义函数名最好大写。

2、要养成良好的习惯,即使用TC编译也不要忘记加头文件。

3、对数组和变量等初始化的时候要用简洁表达。

4、为了使程序简洁效率更高,不要定义多余的变量。

5、申请空间要经济合理避免空间无端的浪费。

6、对算法等要要求严谨,避免多余的执行步骤.

这些是我最近在论坛通过大家的帮助得到的一些收获,其实收获还有很多,很多只是那些太具体就没有一一写出来,在这里特别的鸣谢
feng1256,论坛,hqx

……. 等朋友!



[此贴子已经被作者于2006-5-7 0:15:57编辑过]


程序 是一门语言的艺术,讲究学练读写!
2006-05-07 00:14
快速回复:为什么程序执行后回多出来Null pointer assignment 这句话
数据加载中...
 
   



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

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