#include <iostream>
#include <string>
using namespace std;
class Employee
{
private:
char name[30];
char street[30];
char city[18];
char zip[7];
public:
Employee();
Employee(char *n,char *str,char *ct,char *z);
void change_name(char *n);
void display();
};
Employee::Employee ()
{
}
Employee::Employee (char *n,char *str,char *ct,char *z)
{
strcpy(name,n);
strcpy(street,str);
strcpy(city,ct);
strcpy(zip,z);
}
void Employee::change_name (char *n)
{
strcpy(name,n);
}
void Employee::display ()
{
cout << name << " " << street << " "<< city << " " << zip<< endl;
}
int main()
{
Employee em[5];
Employee el("张三","永乐大街1号","陕西","710600");
char a[] = "710600";
cout<<sizeof(a)<<endl; //2
el.display();
el.change_name("李四");
el.display();
em[0]=el;
em[0].display();
system("pause");
return 0;
}
今天在网上看到这道题,有兴趣把它弄到机子上编译了一把,最后发生错误了:Run-Time Check Failure #2 - Stack around the variable 'el' was corrupted.
查找了一下这个error,产生原因是某个变量溢出了,找了好久,才发现原来是 2 处有问题,输出语句是7 ,7 > 6 ,就溢出了,很简单。
strlen:返回数组不包括最后结束符的元素个数
查找了一下这个error,产生原因是某个变量溢出了,找了好久,才发现原来是 2 处有问题,输出语句是7 ,7 > 6 ,就溢出了,很简单。
strlen:返回数组不包括最后结束符的元素个数
sizeof:返回数组包括最后结束符的所有元素个数
strcopy: 把源数组包括最后结束符的所有元素拷贝到目标数组
谨以为戒
strcopy: 把源数组包括最后结束符的所有元素拷贝到目标数组
谨以为戒