| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1168 人关注过本帖
标题:关于指针数组的问题
只看楼主 加入收藏
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
 问题点数:0 回复次数:26 
关于指针数组的问题

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
void sort(char *a[N])
{
int i,j;
char *p;
for (i=0; i<N-1; i++)
for (j=i+1; j<N; j++)
if (strcmp(a[i],a[j])<0)
{
p=a[i];
a[i]=a[j];
a[j]=p;
}
return ;
}

int main(void)
{
char *a[N];
int i;
printf("Input the country:\n");
for (i=0; i<N; i++)
scanf("%s",a[i]);
sort(a);
printf("The sort is :\n");
for (i=0; i<N; i++)
printf("%s\n",a[i]); /* puts(a[i]);*/
system("pause");
return 0;
}


程序很简单,就是输入几个字符串,进行排序。
问题就出在红色地方的printf,如果用printf输出,某个字符串就会成这种样子:(null)。
但是用puts输出的时候,又是对的。为什么会这样,这两个应该是一样的吧。我用的是TC2。

还有,当我把这个程序放到DEV C++下面的时候,当输入第一个字符串,就谈出一个窗口:“什么内存不能为WRITE之类的东西”。这个是为什么?
希望大家帮忙哈! 谢谢....

搜索更多相关主题的帖子: 指针 
2007-10-28 21:09
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
得分:0 
来人啊......
2007-10-28 21:31
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 

a[i]所指的地方,你并没有分配内存.


2007-10-28 21:33
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
得分:0 
我用SCANF了嘛
2007-10-28 21:34
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
那没用,建议你定义成

a[N][M];

2007-10-28 21:36
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
得分:0 
以下是引用我不是郭靖在2007-10-28 21:36:06的发言:
那没用,建议你定义成

a[N][M];

因为输入的字符串大小不确定,所以我故意用 *a[N]的,
如果用2维数组做,我会的。现在就是想弄清楚,为什么会错....

2007-10-28 21:40
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
char *p;
scanf("%s", p);

这样能运行吗?

2007-10-28 21:41
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
得分:0 
能啊,我刚刚运行了一下,没有错的
而且我觉得也没有什么问题嘛
2007-10-28 21:44
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
那你知道p的值是多少啊?
p指向的单元,你能用吗?

2007-10-28 21:46
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
得分:0 
还是不懂你的意思
用 scanf("%s",p);之后,我用*P就可以得到P的值了嘛。
2007-10-28 21:49
快速回复:关于指针数组的问题
数据加载中...
 
   



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

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