求助程序运行出错问题

软件和网站开发以及相关技术探讨
回复
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21

求助程序运行出错问题

#1

帖子 yunch » 2007-08-18 19:57

程序

#include<iostream>
#include<string>
using namespace std;

int main()


{
char * str;
double t=8.978956;
gcvt(t,5,str);
cout<<"str="<<str<< endl;

double tt=5.14256;
char *u_file_name;

const char * dx="s_u.dx";
gcvt(tt,10,u_file_name) ;
strcat(u_file_name,dx);

cout<<"u_file_name="<<u_file_name<<endl;
return 0;
}


这段程序在终端 g++ -o str str.cpp 编译时能通过
但是运行时却报出以下错误:

段错误 (core dumped)

我用的是Emacs
不知在你们的机器上运行时是怎样的结果?

2. ”段错误 (core dumped)“在我机器上经常出现,误打误撞还能解决
但这一次实在不明白是怎么回事,也受不了这样的错误了,只有靠大家来解释为什么了。
非常谢谢!!!
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#2

帖子 BigSnake.NET » 2007-08-18 20:00

str u_file_name 压根没分配空间啊..
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#3

帖子 BigSnake.NET » 2007-08-18 20:04

代码: 全选

$ cat a.cpp
#include<iostream>
#include<string>
using namespace std;

int main()


{
char str[100];
double t=8.978956;
gcvt(t,5,str);
cout<<"str="<<str<< endl;

double tt=5.14256;
char u_file_name[100];

const char * dx="s_u.dx";
gcvt(tt,10,u_file_name) ;
strcat(u_file_name,dx);

cout<<"u_file_name="<<u_file_name<<endl;
return 0;
}
bigsnake-net@bigsnake-host:~
$ ./a.out 
str=8.979
u_file_name=5.14256s_u.dx
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21

#4

帖子 yunch » 2007-08-18 20:07

但是我把程序改成这样后就能行

int main()
{
/* char * str;
double t=8.978956;
gcvt(t,5,str);
cout<<"str="<<str<< endl;*/


double tt=5.14256;


怎样给他分配空间?
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21

#5

帖子 yunch » 2007-08-18 20:09

再试一试
头像
yunch
帖子: 83
注册时间: 2007-07-02 20:21

#6

帖子 yunch » 2007-08-18 20:11

非常谢谢了。
问题解决
prauge
帖子: 30
注册时间: 2007-03-11 12:29

#7

帖子 prauge » 2007-08-20 0:17

LZ是什么原因阿?
回复