使用指向malloc分配内存之外的指针的预期行为

spr*_*old 0 c c++

只是想知道,因为我无法找到一种方法来测试这个.想象一下,我有10个字节的内存

  1. 我的malloc varA有5个字节
  2. 分配一个包含7个字符的字符串(最多使用8个字节)
  3. 我的malloc varB有5个字节

程序会遇到错误吗?或者最终得到胡言乱语的记忆?

这种行为是否与ac/c ++和cuda程序不同?

Som*_*ude 7

这不是内存泄漏,而是缓冲区溢出.这些导致未定义的行为,这很可能会在运行时给你带来奇怪的问题(甚至是崩溃).

除非你的意思是字面意思,就像在

char *str = malloc(5);
str = "foobar";
Run Code Online (Sandbox Code Playgroud)

然后你确实有内存泄漏,而不是缓冲区溢出.