c语言数组在指定位置插入数

img


int main()
{
    int n;
    printf("请输入数组长度:\n");
    scanf("%d", &n);
    printf("请输入插入位置:\n");
    int k;
    scanf("%d", &k);
    printf("请输入插入的数:\n");
    int num;
    scanf("%d", &num);
    int* a = (int*)malloc(sizeof(int) * n);
    int i;
    printf("请输入此数组:\n");
    for (i = 0;i < n;i++)
    {
        scanf("%d", &a[i]);
    }
    int* b = (int*)malloc(sizeof(int) * (n + 1));
    int m;
    for (m = 0;m < k;m++);
    {
        
            b[m] = a[m];

    }
    b[k] = num;
    for (m = k + 1;m < n + 1;m++)
    {
        b[m] = a[m - 1];
    }
    for (int j = 0;j < n + 1;j++)
    {
        printf("%d ", b[j]);
    }
    return 0;
}


img


为什么我输出的会乱码?
应该怎么修改?

img