首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于指针内存分配的一个简单有关问题

2012-03-25 
关于指针内存分配的一个简单问题#include iostream.hchar* strcpyy(char *dest,const char* src)void m

关于指针内存分配的一个简单问题
#include "iostream.h"
char* strcpyy(char *dest,const char* src);
void main()
{
char *s1;
char *s2="chenlizi";
  char *x=strcpyy(s1,s2);
cout<<x<<endl;
}
char* strcpyy(char* dest, const char* src)
{
  char* pdest=dest;
  char* psrc=(char*)src;
  while(*pdest++ = *psrc++);
  return dest;
}
这样运行时通不过的 提示内存分配不成功 不能对内存进行写操作 但将s1 s2改为数组形式却能运行成功 为什么?

[解决办法]
s1是个空指针,没有分配内存
[解决办法]
s1没分配内存 只是一个指针 也可以说是一个野指针
[解决办法]
s1是个空指针没有分配内存,当然报内存分配不成功
[解决办法]
char * strcpy(char* strDest,const char* strSrc)
{
assert((strDest!=null)&&(strSrc!=null));
char * strAddress=strDest;
strAddress=strcpy(strDest,strSrc);
return strAddress;
}
[解决办法]
#include <iostream>
#include <assert.h>
using namespace std;

char* strcpyy(char *dest,const char* src);

int main()
{
//char s1[10];
char *s1=new char[10];
const char *s2="chenlizi";
char *x=strcpyy(s1,s2);
cout<<x<<endl;

return 0;
}

char* strcpyy(char* dest, const char* src)
{
assert((dest!=NULL)&&(src!=NULL));
char* pdest=dest;
//char* psrc=(char*)src; //没有必要进行转换
while(*dest++ = *src++);
return pdest;
}

热点排行