b*********n 发帖数: 1258 | 1 #include
using namespace std;
void* strcopy(char* in_str){
char* out_str;
if(out_str=(char*)malloc(sizeof(in_str)+1)){
out_str=(char*)memcpy(out_str,in_str,sizeof(in_str)+1);
return out_str;
}else{
cout << "Insufficient Memory" << endl;
return NULL;
}
}
int main(int argc, char* argv[])
{
char* a="abcdefghijklmn";
cout << (char*)strcopy(a) << endl;
return 0;
} |
X****r 发帖数: 3557 | 2 不是sizeof,是strlen
【在 b*********n 的大作中提到】 : #include : using namespace std; : void* strcopy(char* in_str){ : char* out_str; : if(out_str=(char*)malloc(sizeof(in_str)+1)){ : out_str=(char*)memcpy(out_str,in_str,sizeof(in_str)+1); : return out_str; : }else{ : cout << "Insufficient Memory" << endl; : return NULL;
|
b******a 发帖数: 215 | 3 sizeof(in_str)是返回的指针的大小,不是字符串的长度.
【在 b*********n 的大作中提到】 : #include : using namespace std; : void* strcopy(char* in_str){ : char* out_str; : if(out_str=(char*)malloc(sizeof(in_str)+1)){ : out_str=(char*)memcpy(out_str,in_str,sizeof(in_str)+1); : return out_str; : }else{ : cout << "Insufficient Memory" << endl; : return NULL;
|
b*********n 发帖数: 1258 | 4 哦
对
忘了
谢谢
【在 b******a 的大作中提到】 : sizeof(in_str)是返回的指针的大小,不是字符串的长度.
|
b*********n 发帖数: 1258 | 5 谢谢
【在 X****r 的大作中提到】 : 不是sizeof,是strlen
|
x*x 发帖数: 365 | 6 FYI: you can also just use "strdup". |