逆向_13内存分配及文件操作相关函数
逆向-013.内存分配-文件读写
#define
- 无参数的宏定义的一般形式为:# define 标识符 字符序列
- 带参数宏定义:#define 标识符(参数表)字符序列
- 宏名标识符与左圆括号之间不允许有空白符,应紧接在一起.
- 宏与函数的区别:函数分配额外的堆栈空间,而宏只是替换.
- 为了避免出错,宏定义中给形参加上括号.
- 末尾不需要分号.
- define可以替代多行的代码,记得后面加 \
重复包含
解决方法1
#if !defined(ZZZ) #define ZZZ //代码段 #endif
解决方法2
#pragma once
内存分配与释放
简单使用
int* ptr;//声明指针 //在堆中申请内存,分配128个int ptr = (int *)malloc(sizeof(int)*128); //无论申请的空间大小 一定要进行校验 判断是否申请成功 if(ptr == NULL) { return 0; } //初始化分配的内存空间 memset(ptr,0,sizeof(int)*128); //使用。。。 *(ptr) = 1; //使用完毕 释放申请的堆空间 free(ptr); //将指针设置为NULL ptr = NULL;
注意事项
- 使用sizeof(类型)*n 来定义申请内存的大小
- malloc返回类型为void*类型 需要强制转换
- 无论申请的内存有多小 一定要判断是否申请成功
- 申请完空间后要记得初始化.
- 使用完一定要是否申请的空间.
- 将指针的值设置为NULL.
文件操作相关函数
1、fopen函数
2、fseek函数
3、ftell函数
4、fclose函数
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 787772394@qq.com
文章标题:逆向_13内存分配及文件操作相关函数
本文作者:二豆子·pwnd0u
发布时间:2020-11-21, 16:21:19
最后更新:2023-05-18, 09:49:50
原始链接:http://blog.codefat.cn/2020/11/21/%E9%80%86%E5%90%91-13%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D%E5%8F%8A%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E7%9B%B8%E5%85%B3%E5%87%BD%E6%95%B0/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。