沃特小文文儿 2021-11-01 15:29 采纳率: 66.7%
浏览 31
已结题

C语言的小实验语法小疑问 用指针建了一个数组 为什么最后结果在p和n的链接部分值为0?

img

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

int main()
{

    int *p=(int*)malloc(sizeof(int)*3);
    int *n=(int*)malloc(sizeof(int)*3);
    int x;
    printf("Input:\n");
    for(int i=0;i<3;i++)
    {
        scanf("%d",&x);
        *(p+i)=x;
    }
    *(p+3)=*n;
    for(int i=0;i<3;i++)
    {
        scanf("%d",&x);
        *(n+i)=x;
    }
    for(int i=0;i<7;i++)
    {
        printf("Input:%d\n",*(p+i));
    }
    return 0; 
}

用指针建了一个数组
为什么最后结果在p和n的链接部分值为0?

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-11-01 15:34
    关注

    第15行 *(p+3)=*n; 这里 *(p+3) ,对数组p[] 越界操作了,p[]数组下标0-2。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月6日
  • 已采纳回答 11月6日
  • 修改了问题 11月1日
  • 修改了问题 11月1日
  • 展开全部