关于烫烫烫和屯屯屯

微较的msvc编译器,调试模式下为了方便检测内存的非法访问,对于不同的内存做了初始化,

未初始化栈: 0xCCCCCCCC

未初始化堆: 0xCDCDCDCD

已释放的堆: 0xDDDDDDDD

0xCCCC解释为GB2312字符即是烫, 0xCDCD即是屯, 0xDDDD即是葺。所以遇到此类问题时,从现象的不同可以反推出具体的内存错误类型。

cpp 复制代码
#include <stdio.h>
#include <malloc.h>

int main(int argc, char** argv)
{
	char stack_mem[32];
	stack_mem[31] = 0;
	printf("stack mem: %s\n", stack_mem);

	char *heap_mem = (char *)malloc(32);
	if (heap_mem != NULL) {
		heap_mem[31] = 0;
		printf("heap  mem: %s\n", heap_mem);

		free(heap_mem);
		printf("heap  mem: %s\n", heap_mem);
	}

	return 0;
}
相关推荐
liu****1 分钟前
7.企业级开发
c++·gitee·版本控制
add45a13 分钟前
C++代码移植性设计
开发语言·c++·算法
qq_1481153718 分钟前
分布式系统容错设计
开发语言·c++·算法
m0_5603964721 分钟前
C++中的享元模式
开发语言·c++·算法
郭涤生25 分钟前
CANopen 基础复习
服务器·网络·c++
nainaire27 分钟前
速通LeetCode hot100——(1~9 哈希,双指针,滑动窗口)
c++·笔记·算法·leetcode
2501_9249526927 分钟前
分布式缓存一致性
开发语言·c++·算法
炸膛坦客1 小时前
单片机/C/C++八股:(二十一)include <> 和 include ““ 的区别
c语言·c++
Yupureki1 小时前
《Linux系统编程》12.基础IO
linux·运维·c语言·开发语言·数据库·c++
Jordannnnnnnn1 小时前
追赶32名
c++