分割错误?

软件和网站开发以及相关技术探讨
回复
头像
小锐同学
帖子: 314
注册时间: 2009-08-14 16:24

分割错误?

#1

帖子 小锐同学 » 2009-11-06 10:29

#include <stdio.h>
int main(void)
{
char *string;
int length =0;
char *x;
printf("Input:");
scanf("%s",string);
x=string;
while(*string++ != '\0');
length += 1;
printf("Median is:%d/n",length);
printf("Every number is:");
while(*x++ != '\0');
printf("%d",*x);
printf("/nReverse order is:");
int i;
for(i=0 ; i < length ; i++)
printf("%d",*string--);
return 0;
}


编译后运行却提示:
glorylucifer@HelloWorld:~/C$ ./ReverseOrder.out
Input:123
Segmentation fault
glorylucifer@HelloWorld:~/C$

哪里出错了??
我很乖的。。。
头像
懒蜗牛Gentoo
论坛版主
帖子: 7353
注册时间: 2007-03-02 17:36
系统: Linux Mint

Re: 分割错误?

#2

帖子 懒蜗牛Gentoo » 2009-11-06 10:42

没有为string申请内存啊,string是个指向0x00地址的空指针,当然会错。
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
小锐同学
帖子: 314
注册时间: 2009-08-14 16:24

Re: 分割错误?

#3

帖子 小锐同学 » 2009-11-06 12:31

它应该是同时声明了string和指向string的指针吧。
我很乖的。。。
头像
懒蜗牛Gentoo
论坛版主
帖子: 7353
注册时间: 2007-03-02 17:36
系统: Linux Mint

Re: 分割错误?

#4

帖子 懒蜗牛Gentoo » 2009-11-06 12:36

你只是生命了一个char型的指针,没说他指向哪。应该
string=malloc([size]);
然后,记得free
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 分割错误?

#5

帖子 BigSnake.NET » 2009-11-06 20:15

qkbeyond 写了:
Segmentation fault
分割错误? :em20 :em20
通常译成段错误
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复