注册 登录
编程论坛 C语言论坛

关于指针

NullUser 发布于 2023-09-06 17:50, 454 次点击
例:int* p = (int*)malloc(sizeof(int));
    p[0] = 1;
    p[1] = 11;
    p[2] = 111;
    printf("%d %d %d", p[0], p[1],p[2]);
数组第一个元素是:p[0],第二个元素是*p+1,纯地址操作,没有任何东西去记录p[1]这个空间,系统会认为p[1]这个空间是“已使用”还是“未使用”,会这对片空间再分配吗?

[此贴子已经被作者于2023-9-6 17:54编辑过]

1 回复
#2
forever742023-09-06 18:32
因为只分配了1个int的空间,所以严格说来p[1]和p[2]属于非法访问未授权内存,不会引起再分配。
1