为什么在Malloc()函数中它分配了比实际指定的更多的字节?

时间:2017-04-07 08:49:34

标签: c++

我使用<Config> <Paths> <Input>C:\</Input> <Output>C:\</Output> <Log>\Logs</Log> </Paths> <SystemOwnerRoles> <Supplier>SUPPLIER</Supplier> <Mop>MOP</Mop> </SystemOwnerRoles> </Config> 分配内存,即它分配了一个字节,但它接受的数字超过1个字节。在此代码中,它接受1000个数字,并且无法将此数字存储在1个字节中。 代码:

malloc(1)

为什么会这样?

2 个答案:

答案 0 :(得分:2)

未定义的行为,因为CC++实际上没有对数组进行任何边界检查。

答案 1 :(得分:0)

数组没有任何边界检查条件。 如果您的操作系统或框架效率很高,则会导致分段错误。