看到一篇博客 (链接)
有关c++ 函数中返回字符串,摘录如下:
1 #include<iostream>
2 #include<cstring>
3 #include<cstdlib>
4 using namespace std;
5 char * getname(void);
6 int main()
7 {
8 char * name;
9 name = getname();
10 cout << "My name is : " << name << endl;
11 // delete [] name;
12 free(name);
13 cout << "---------华丽的分割线----------" << endl;
14 return 0;
15 }
16
17 char * getname()
18 {
19 char get_name[30];
20 cout << "Enter your name :";// read a word
21 cin >> get_name;
22 char * name = (char*)malloc(strlen(get_name)+1);
23 strcpy(name, get_name);
24 return name;
25 }
C++中要非常小心指针的使用,malloc(), free()配合
malloc 用法
#include <stdlib.h>
voide *malloc(size_t size);
free 用法
#include <stdlib.h>
voide free(voic *ptr);