| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 838 人关注过本帖
标题:求助(哪里出错了)
只看楼主 加入收藏
suifengjita
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-12
收藏
 问题点数:0 回复次数:11 
求助(哪里出错了)

#include<stdio.h>

int main()
{
int *string1,*string2;
char c;
int i=0,j,k;
printf("Enter a string:\n");
while((c=getchar())!='\n')
{
*(string1+i)=c;
++i;
}
for(j=0;j<=i-1;++j)

*(string2+j)=*(string1+j);

printf("The twisted string is:\n");
for(k=0;k<=i-1;++k)
{
*(string1+k)=*(string2+(i-1-k));
printf("%c",*(string1+k));
}
printf("\n");
return 0;
}

搜索更多相关主题的帖子: include Enter 
2006-11-21 13:43
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
没有给指针申请内存

2006-11-21 14:28
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 
int *string1,*string2;
应该是char 型
指针还没分配内存空间
可以用 malloc 分配
你是程序是将字符串逆序输出吧,还可以写得更简洁一些

片言可以明百意 坐驰可以役万里
2006-11-21 19:03
zxd198778
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2006-7-30
收藏
得分:0 

int *string1,*string2;
int型不是给它分配了空间了吗,
怎么还要用malloc给他分配啊
不懂


我一个不懂世事的人,希望能在这里学到我想学的一些东西。
2006-11-21 19:33
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 
只定义了一个指针类型,没有让它指向哪块区域.

在不断的拼搏与进取中,定能创造一片天地!
2006-11-21 20:17
suifengjita
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-12
收藏
得分:0 
我知道可以简洁,不过我想知道这个怎么错了
可不可以讲得相信点,怎么给它分配空间
2006-11-21 21:14
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
指针进行运算之前得让它指向一个内存单元啊。。。。 要是不赋值。。。它并不是没有值。。而是指向一个末知的存储单元。。。。是很危险的。。。如果是指向系统关键进程的一个存储单元的话。。。再进行操作。。。系统会意外崩溃的。。。如果指向空白存储区那还好点

这个社会太复杂。。。
2006-11-21 23:27
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
楼上的担忧在现在常用的操作系统下是不会发生的,大可放心

2006-11-22 13:02
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 
怎么不会发生?
如果程序大一点的话,就恰好指这个程序的内的某个内存单元,输入字符串,就覆盖
了原来有用的内容,程序会不出错吗?

int *string1,*string2;
则 string1,string2指向的是int型数据的内存

你输入的是字符,所以应该是指向char型数据,要声明成char型的

片言可以明百意 坐驰可以役万里
2006-11-22 14:13
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 
分配空间可以同时再声明两个数组
char a[20],b[20];
string1=a; string2=b;
这样就可以了

也可以动态分配
string1=(char *)malloc(20*sizeof(char));
string1=(char *)malloc(20*sizeof(char));
这样的话,还要包含头文件 <mallo.c>

片言可以明百意 坐驰可以役万里
2006-11-22 14:17
快速回复:求助(哪里出错了)
数据加载中...
 
   



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

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