malloc 返回值的类型是 void *
malloc 返回值的类型是 void *,所以在调用 malloc 时要显式地进行类型转换,将 void * 转换成所需要的指针类型。
1 #include <iostream> 2 3 using namespace std; 4 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 5 //定义名为max_value的函数模板 6 template <class T> T max_value (T a,T b) 7 { 8 return ((a> b)? a: b); 9 } 10 11 //在main()函数中测试max_value函数模板 12 13 int main(int argc, char** argv) { 14 //double类型数据使用max_value模板函数 15 double x = 1.2, y = 2.1; 16 cout<<"x="<<x<<"\t"; 17 cout<<"y="<<y<<endl; 18 double result=max_value(x,y); 19 cout<<"max_value(x,y)="<<result<<endl; 20 cout<<"max_value(2*3.0,2+3.0)="<<max_value(2*3.0,2+3.0)<<endl; 21 cout<<"------------------"<<endl; 22 23 //int类型数据使用max_value模板函数 24 int n= 1, m= 6; 25 cout<<"n="<<n<<"\t"; 26 cout<<"m="<<m<<endl; 27 cout<<"max_value(n,m)="<<max_value(n,m)<<endl; 28 cout<<"------------------"<<endl; 29 30 //char类型数据使用max_value模板函数 31 char ch1='A',ch2='a'; 32 cout<<"ch1="<<ch1<<"\t"; 33 cout<<"ch2="<<ch2<<endl; 34 cout<<"max_value(ch1,ch2)="<<max_value(ch1,ch2)<<endl; 35 cout<<"------------------"<<endl; 36 37 //字符串数据使用max_value模板函数 38 char str1[]="abc",str2[]="ABC",*p; 39 p=max_value(str1,str2); 40 cout<<"max_value("<<str1<<","<<str2<<")="<<p<<endl; 41 return 0; 42 }