在malloc分配的内存之外使用指针的预期行为
Expected behavior for using pointer beyond malloc allocated memory
只是想知道,因为我不能想出一个方法来测试这个。假设我有10字节的内存
- I malloc varA为5字节
- 指定一个7个字符的字符串(使用8字节)
程序会出现错误吗?还是以乱码记忆告终?
c/c++和cuda程序的行为不同吗?
这不是内存泄漏,这是一个缓冲区溢出。这会导致未定义行为,这很可能在运行时给您带来奇怪的问题(甚至崩溃)。
除非你指的是第2点,比如
char *str = malloc(5);
str = "foobar";
那么确实有内存泄漏,而没有缓冲区溢出。
写超出分配的内存是一种未定义的行为。
相关文章:
- 将指针分配给另一个指针时会发生什么情况?
- C++将一个指针分配给另一个指针时执行的类型检查
- 我似乎无法为指针分配一个数组,然后更改数组的内容
- C++为 void 指针分配一个字符串
- 当我在 C++ 中将派生类的指针分配给指针时,地址会更改
- MPI 集合通信中的指针分配
- 函数指针分配在创建 DLL 后导致错误
- 通过双指针分配指针
- C++编译时使用 constexpr 字符数组指针分配静态数组?
- 我可以直接为指针分配地址吗?如果是,如何做到这一点
- 为什么为char指针分配内存不会截断char序列
- C++指针分配字符数组的地址
- 将 void 指针分配给另一个 void 指针
- 如何将不同的成员函数指针分配给注册类的不同实例?
- 如何为指针分配特定的内存地址?
- C++ - 无法将顶部常量指针分配给另一个非常量指针
- 将指针分配给另一个指针时会发生什么情况?
- 为指向C++中的对象/对象的指针分配堆内存
- 将指针分配给字符串变量中包含的地址
- 当直接分配时,为什么此功能指针分配起作用,而不是与有条件的操作员一起使用