读书人

求指教为什么这个程序会出有关问题额

发布时间: 2012-07-30 16:19:05 作者: rapoo

求指教为什么这个程序会出问题额
#include<iostream>
using namespace std;
void mystrcopy(char* a,char* b)
{
while(*a++=*b++);
}
int main(){
char *a;
char *b="wo shi aaa";
mystrcopy(a,b);
cout<<a<<endl;
}

就是简单的字符串复制啊

[解决办法]
你定义了字符指针a,但是你没有给它分配实际的内存,你往这个指针所指向的内存拷贝数据的时候就是非法的,导致了错误。你最好在使用这个指针之前进行分配内存。

C/C++ code
#include<iostream>#include<string.h>using namespace std;void mystrcopy(char* a,char* b){while(*a++=*b++);}int main(){char *a;char *b="wo shi aaa";a = new char[strlen(b)+1];mystrcopy(a,b);cout<<a<<endl;}
[解决办法]
你的指针乱值,而且复制之前没有分配空间,应该如下:
C/C++ code
#include<iostream>using namespace std;void mystrcopy(char* a, char* b){    char* tmp = a;    while((*tmp++ = *b++) != '\0');}int main(void){    char a[16];    char* b = "wo shi aaa";    mystrcopy(a, b);    cout << a << endl;} 

读书人网 >C语言

热点推荐