![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 71
RNAMatrix
横尽虚空,天象地理无一可恃而可恃者唯我.
竖尽来劫,河图洛书无一可据而可据者皆空.
展开
-
浅谈C中malloc和memset函数
在C中 malloc和memset是2个常用的对内存操作的函数。首先还是来看一下这2个函数的函数原型。1.malloc函数malloc函数用于从堆上分配指定字节的内存空间。void * malloc(size_t n); 其中,形参n为要求分配的内存字节数。如果执行成功,函数范围获得的内存空间的首地址;执行失败,返回值为NULL。由于函数返回值值的类型为void的指针,因此,可以将void指针类型转换后赋值给任意类型指针,这样就可以通过操作该类型指针来操作从堆上获得的内存空间。需要注意的是malloc函数分原创 2010-07-07 08:51:00 · 2812 阅读 · 0 评论 -
C++ 函数的数组参数
我们都知道C和C++中在传递一维数组时,,都将被编译器视为指针类型。如:// 三个等价的putValues()声明 void func( int* ); void func( int[] );void func( int[ 10 ] ); 所以传递一个指针实参给一维数组参数是可行的。而且,当编译器对实参类型进行参数类型检查时并不检查一维数组的长度,也就是说数组的长度与参数声明无关。那么上升为多维数组的情况,多维数组参数也将会被编译器视为指针的指针(或者说指针数组)吗?当然不是,当函数参数是多维数原创 2010-07-08 09:56:00 · 987 阅读 · 0 评论 -
C++ 标准库函数与宏定义的名字冲突
今天在使用limits中的numeric_limits类模板函数max和min时,编译出现了一个错误: error C2589: '(' : illegal token on right side of '::'百思不得其解,后来突然想到max和min很有可能已经被定义成了宏,于是查看包进来的头文件,发现蹊跷肯定在中:windows.h包括了windef.h头文件,在windef.h中定义有宏:#ifndef NOMINMAX#ifndef max#define max(a,b)原创 2010-07-26 00:44:00 · 7119 阅读 · 2 评论