您的位置:首页 > 编程语言 > C语言/C++

【C++】默认实参的定义,malloc改成new

2012-09-19 12:44 495 查看
1.默认实参的定义

C++中,默认实参只能在声明和定义其中之一定义,否则重复定义。尽量在声明(头文件)中定义,这样其他文件调用该函数的时候,可以使用默认实参。

如下所示:

头文件log.h中声明如下:

void __declspec (dllexport) log_int_string(const char* pre,const int num,const char* aft="");

源文件log.cpp中定义如下:

void log_int_string(const char* pre,const int num,const char* aft)
{
outfile.open("C:\\log.txt",ofstream::app);
outfile<<pre<<num<<aft<<endl;
outfile.close();
}

2.malloc、free改成new、delete

程序原来在循环中使用malloc和free,进行多次动态内存分配和释放。在经理的笔记本上(XP系统)上运行的时候会出现错误,malloc出来的内存地址不能为read。但是,在我的台机(win7)上没有问题。

改成new、delete来进行内存分配和释放之后,问题就解决了。怀疑是C++中malloc动态分配的空间是“自由存储区”,这块存储区有大小限制或着在XP下有bug。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: