小编jfg*_*gao的帖子

访问超出为指针分配的内存的索引

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char *p = malloc(10);
    int i;
    for(i=0;i<15;i++)
    {
        p[i]='c';
        printf("INDEX:%d  %c\n",i,p[i]);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么在上面的代码中,我只分配了 10 块内存,但我仍然能够访问指针的第 15 个索引。

我不确定为什么,但我认为这是因为这个指针指向一些随机的内存块,而我只是覆盖了这部分内存,但我只分配了特定数量的内存,所以我不确定为什么它会起作用。

有人可以确认吗?

c memory malloc pointers

-1
推荐指数
1
解决办法
1146
查看次数

标签 统计

c ×1

malloc ×1

memory ×1

pointers ×1