C语言中内存分配函数

(1)用malloc或calloc函数分配一个能存储10个整型数的存储空间;
提示:p=(int*)malloc(10sizeof(int));
(2)通过scanf函数向(1)中分配的存储空间输入10个整数;
(3)再通过realloc函数将先前分配的空间扩容为可存储20整型数的大小;
提示:p=(int
)realloc(p,20*sizeof(int));
(4)向扩容后的空间中再输入另外的10个整数;
(5)用printf函数输入所有的整数;
(6)最后用free函数释放存储空间。

有帮助望采纳

#include <stdio.h>
// #include <math.h>
#include <memory.h>
int main()
{
    int *a = malloc(10 * sizeof(int));
    for (int i = 0; i < 10; i++)
    {
        scanf("%d", a + i);
    }

    a = realloc(a, 20 * sizeof(int));
    for (int i = 10; i < 20; i++)
    {
        scanf("%d", a + i);
    }
    for (int i = 0; i < 20; i++)
    {
        printf("%d ", *(a + i));
    }
    free(a);
}

你自己不都写出来了么?

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i;
    int* p = (int*)malloc(10*sizeof(int));
    for(i=0;i<10;i++)
        scanf("%d",&p[i]);

    p = (int*)realloc(p,20*sizeof(int));
    for(i=10;i<20;i++)
        scanf("%d",&p[i]);

    for(i=0;i<20;i++)
        printf("%d ",p[i]);
    printf("\n");
    free(p);
    p = 0;
    return 0;
}