以下程序出现的错误的原因是什么

软件和网站开发以及相关技术探讨
回复
头像
rob2468
帖子: 185
注册时间: 2009-03-19 8:39
联系:

以下程序出现的错误的原因是什么

#1

帖子 rob2468 » 2009-07-19 20:30

代码: 全选

#include<iostream>
using namespace std;

char *atovl(const char *str)
{
	char temp[50];
	int i;
	for(i=0;i<50&&str[i]!=0;i++)
	{
		temp[i]=str[i]-'0';
	}
	temp[i]=0;
	return temp;
}

int main()
{
	char a[50];
	char b[50];
	char str[50];
	while(cin>>str)
	{
		a=atovl(str);
		cin>>str;
		b=atovl(str);
	}
	return 0;
}
出现了下面一些错误
c.cpp: In function ‘char* atovl(const char*)’:
c.cpp:6: 警告: 返回了局部变量的‘temp’的地址
c.cpp: In function ‘int main()’:
c.cpp:23: 错误: 将‘char*’赋值给‘char [50]’时类型不兼容
c.cpp:25: 错误: 将‘char*’赋值给‘char [50]’时类型不兼容
这些错误是什么意思,为什么会出现这样的错误
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 以下程序出现的错误的原因是什么

#2

帖子 BigSnake.NET » 2009-07-19 20:43

字面意思,大声朗读错误信息3次就明了
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
rob2468
帖子: 185
注册时间: 2009-03-19 8:39
联系:

Re: 以下程序出现的错误的原因是什么

#3

帖子 rob2468 » 2009-07-19 21:29

有没有清楚的人说说
将‘char*’赋值给‘char [50]’时类型不兼容
这句话是什么意思
qakito
帖子: 9
注册时间: 2008-01-28 15:54

Re: 以下程序出现的错误的原因是什么

#4

帖子 qakito » 2009-07-19 23:34

rob2468 写了:有没有清楚的人说说
将‘char*’赋值给‘char [50]’时类型不兼容
这句话是什么意思
请查阅数组与指针的关系
a是数组a的首地址,是不可变量

C中 = 不能将一数组直接赋值给另一数组
头像
rob2468
帖子: 185
注册时间: 2009-03-19 8:39
联系:

Re: 以下程序出现的错误的原因是什么

#5

帖子 rob2468 » 2009-07-20 9:16


对了,明白
回复