只是想知道,因为我无法找到测试方法。想象一下我有10个字节的内存
的场景程序会遇到错误吗?或者最终得到胡言乱语的记忆?
行为是否与c / c ++和cuda程序不同?
答案 0 :(得分:7)
这不是内存泄漏,而是缓冲区溢出。这些导致未定义的行为,这很可能会在运行时给你带来奇怪的问题(甚至是崩溃)。
除非你的字面意思是指2,否则就像
一样char *str = malloc(5);
str = "foobar";
然后你做有内存泄漏,没有缓冲区溢出。
答案 1 :(得分:0)
写入超出已分配内存的行为是未定义的行为。