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

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。。。

你可能感兴趣的:(malloc)