代码如下
#include<iostream>
const int ArSize = 80;
char* left(const char *str,int n=1);
int main()
{
using namespace std;
char sample[ArSize];
cout<<"Enter a string: ";
cin.get(sample,ArSize);
char*ps =left(sample,4);
cout<<&ps<<endl;
cout<<ps<<endl;
delete [] ps;
return 0;
}
char* left(const char *str,int n)
{
using namespace std;
if(n<0)
n=0;
char*p=new char[n+1];
cout<<&p<<endl;
int i;
for(i=0;i<n&&str[i];i++)
p[i]=str[i];
while(i<=n)
p[i++]='0';
return p;
}
结果是一个地址为0018FE88
0018FEEC
为什么会这样啊
#include<iostream>
const int ArSize = 80;
char* left(const char *str,int n=1);
int main()
{
using namespace std;
char sample[ArSize];
cout<<"Enter a string: ";
cin.get(sample,ArSize);
char*ps =left(sample,4);
cout<<&ps<<endl;
cout<<ps<<endl;
delete [] ps;
return 0;
}
char* left(const char *str,int n)
{
using namespace std;
if(n<0)
n=0;
char*p=new char[n+1];
cout<<&p<<endl;
int i;
for(i=0;i<n&&str[i];i++)
p[i]=str[i];
while(i<=n)
p[i++]='0';
return p;
}
结果是一个地址为0018FE88
0018FEEC
为什么会这样啊