本文共 3002 字,大约阅读时间需要 10 分钟。
#include <stdio.h> #include <malloc.h> static char *helloWorld = "Hello, World"; main() { char *mystr = malloc(strlen(helloWorld)); strncpy(mystr, helloWorld, 12); printf("%s\n", mystr); } |
#include <stdio.h> #include <malloc.h> static char *helloWorld = "Hello, World"; main() { char *mystr = malloc(strlen(helloWorld)+1); strncpy(mystr, helloWorld, 12); mystr[12]=”\0”; printf("%s\n", mystr); free(mystr); } |
内存信息 | 描述 | 错误等级 |
ABR | Array Bounds Read 数组越界读 | 3 级 |
ABW | Array Bounds Write 数组越界写 | 2 级 |
BSR | Beyond Stack Read 越栈读 | 3 级 |
BSW | Beyond Stack Write 越栈写 | 3 级 |
COR | Core Dump Imminent 非法操作 | 1 级 |
FIU | File De.ors In Use 文件描述符被使用 | 4 级 |
FMM | Freeing Mismatched Memory 释放错误内存 | 2 级 |
FMR | Free Memory Read 对已释放内存读 | 3 级 |
FMW | Free Memory Write 对已释放内存写 | 2 级 |
FNH | Freeing Non Heap Memory 释放非堆内存 | 2 级 |
FUM | Freeing Unallocated Memory 释放了没有分配的内存 | 2 级 |
IPR | Invalid Pointer Read 非法指针读 | 1 级 |
IPW | Invalid Pointer Write 非法指针写 | 1 级 |
MAF | Malloc Failure 分配内存失败 | 4 级 |
MIU | Memory In-Use 内存正在使用 | 4 级 |
MLK | Memory Leak 内存泄露 | 3 级 |
MRE | Malloc Reentrancy Error remalloc错 | 2 级 |
MSE | Memory Segment Error 内存段错 | 3 级 |
NPR | Null Pointer Read 空指针读 | 1 级 |
NPW | Null Pointer Write 空指针写 | 1 级 |
PAR | Bad Parameter 错误的参数 | 3 级 |
PLK | Potential Leak 潜在的内存泄露 | 3 级 |
SBR | Stack Array Bounds Read 栈数组越界读 | 3 级 |
SBW | Stack Array Bounds Write 栈数级越界写 | 2 级 |
SIG | Signal 信号 | 4 级 |
SOF | Stack Overflow 栈溢出 | 3 级 |
UMC | Uninitialized Memory Copy 对未初始化的内存进行拷贝 | 3 级 |
UMR | Uninitialized Memory Read 对未初始化的内存读 | 3 级 |
WPF | Watchpoint Free 释放被监控的内存 | 4 级 |
WPM | Watchpoint Malloc 被监控的内存分配 | 4 级 |
WPN | Watchpoint Entry 被监控的内存 | 4 级 |
WPR | Watchpoint Read 被监控的内存读 | 4 级 |
WPW | Watchpoint Write 被监控的内存写 | 4 级 |
WPX | Watchpoint Exit 退出被监控的内存 | 4 级 |
ZPR | Zero Page Read 零页面读 | 1 级 |
ZPW | Zero Page Write 零页面写 | 1 级 |