分页: 1 / 1

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

发表于 : 2009-07-19 20:30
rob2468

代码: 全选

#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]’时类型不兼容
这些错误是什么意思,为什么会出现这样的错误

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

发表于 : 2009-07-19 20:43
BigSnake.NET
字面意思,大声朗读错误信息3次就明了

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

发表于 : 2009-07-19 21:29
rob2468
有没有清楚的人说说
将‘char*’赋值给‘char [50]’时类型不兼容
这句话是什么意思

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

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

C中 = 不能将一数组直接赋值给另一数组

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

发表于 : 2009-07-20 9:16
rob2468

对了,明白