递增指针会导致内存泄漏吗?

标签 c pointers memory-management

以下代码是否包含字符串中前三个字符的内存泄漏?

char * str = (char*)malloc(21 * sizeof(char));
strcpy(str, "01234567890123456879");
str = str + 3;
free(str);

谢谢。

最佳答案

它比 泄漏 更糟糕,您不应该使用未从 malloc(或 realloc)返回的指针调用 free /调用)。您可能会发生泄漏、崩溃,或者谁知道还有什么...您所做的是未定义的行为

关于递增指针会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036948/

相关文章:

c++ - 使用 GCC,我可以在每个函数的基础上禁用 -Wframe-larger-than 吗?

c - 打印出堆栈指针的值

C - strncpy 用法 - 段错误

pointers - 如何以字节为单位获取指针偏移量?

c - add = (char *) wed.. 这在 C 中是什么意思?

c - 如何将数据从一个结构指针复制到另一个结构成员

c++ - 为什么程序分配的内存不会减少?

caching - Go:处理过多内存申请的最佳方式? mmap,内存还是缓存?

c++ - 当::operator new 足够时,为什么需要::operator new[]?

c - 在 C 中将指针传递给只读函数