Malloc使用的内存比指定的多?[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Malloc使用的内存比指定的多?[重复]相关的知识,希望对你有一定的参考价值。

我正在使用malloc为一个字符串分配内存。s=(char*) malloc(sizeof(char)*4)为什么我可以在字符串中存储超过4个字符?如果我分配了4个字节的内存,而每个字符需要1个字节,为什么我可以在程序崩溃之前存储8个字符?

答案

你可以这样做i(在某些情况下),但这将导致 "未定义行为"。UB可以产生许多结果,包括似乎在大多数时间工作,直到你最大的客户试图在他们最繁忙的一天运行你的应用程序。

你千万不要这样做。你可以使用各种工具来检测它(例如电栅栏、valgrind)。

以上是关于Malloc使用的内存比指定的多?[重复]的主要内容,如果未能解决你的问题,请参考以下文章

探究操作系统的内存分配(malloc)对齐策略

尝试使用 malloc() 分配一个包含内部集合的结构来堆内存 [重复]

当我必须指定内存大小时,malloc 数组和常规数组有啥区别?

如何获取由函数“malloc”锁定的内存段指针的大小 [重复]

删除/释放由 malloc 分配并由 new [重复] 重用的内存

为啥编译器分配的内存比需要的多? [复制]