memset函数越界分析
来源:互联网 发布:淘宝店铺的升级专业版 编辑:程序博客网 时间:2024/06/03 14:18
一、memset()函数原型
将buffer所指向的某一块内存中的前count个字节的内容全部设置为c指定的ASCII值
extern void *memset(void *buffer, int c, int count) { const unsigned char uc = c; unsigned char *su; for(su = buffer;0 < count;++su,--count) *su = uc; return buffer; }buffer:为指针或是数组,
c:是赋给buffer的值,
count:是buffer的长度.
二、函数使用
memset可以清空一个结构体
struct sample_struct{char csName[16];int iSeq;int iType;};struct sample_strcut stTest;memset(&stTest,0,sizeof(struct sample_struct));如果是数组:
struct sample_struct TEST[10];
memset(TEST,0,sizeof(struct sample_struct)*10);
三、注意
1. memset是以字节为单位初始化内存块。
char data[10]; memset(data, 1, sizeof(data)); // right memset(data, 0, sizeof(data)); // right int data[10]; memset(data, -1, sizeof(data)); // right memset(data, 1, sizeof(data)); // wrong, data[x] be 0x01012. 当结构体中包含指针时,在使用memset时需要小心。
struct Parameters { int* p_x; }; Parameters par; memset(&par, 0, sizeof(par));当memset初始化时,会把p_x指针本身设置为0。
3.这里的memset是多余。
char buffer[20];
memset(buffer,0,sizeof(char)*20);
strcpy(buffer,"123");
//以下并不多余
memset(buffer,0,sizeof(char)*20);
memcpy(buffer,"123",3);
0 0
- memset函数越界分析
- memcpy函数越界分析
- snprintf函数越界分析
- memset函数简单分析
- memset函数源码分析
- memset函数分析
- memset内存越界导致函数堆栈崩溃的例子
- memset函数分析与迷惑
- 透彻分析C/C++中memset函数
- 透彻分析C/C++中memset函数
- 透彻分析C/C++中memset函数
- 透彻分析C/C++中memset函数
- memset函数
- memset函数
- memset()函数
- memset函数
- memset 函数
- memset函数
- UWA DAY 2017 开启报名 !
- Yelper推荐系统
- 学习Mac开发第六弹 学习objective-c 调用shell 脚本
- csdn如何转载文章
- 2016年年终总结-致奋斗过的岁月
- memset函数越界分析
- SPOJ-MINSUB - Largest Submatrix(单调栈,二分,好题)
- ArcGIS for Desktop安装及授权常见问题解答
- 神经网络单神经元感知器的MATLAB实现
- openssl unable to write 'random state'
- PyQt5 与 Eric6 的极速 GUI 开发
- HTTP Referer
- Codeforces Round #392 (Div. 2) F. Geometrical Progression(数学)
- Zookeeper学习总结