随机数组。求C代码实现。

能不能用malloc分配一块和产生的随机数大小相同的内存(随机数范围很大),并将随机数赋给数组(数组大小是分配的内存大小)。


//用malloc分配一块和产生的随机数大小相同的内存(随机数范围1..32767),并将随机数赋给数组(数组大小是分配的内存大小)。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
int main() {
    srand((unsigned int)time(NULL));
    for (int n=0;n<10;n++) {
        int rnd=1+rand()%32767;
        printf("n,rnd:%d ",n,rnd);
        short int *p=(short int *)malloc(rnd*sizeof(short int));
        if (p==NULL) {
            printf("malloc(%d) failure!\n",rnd*sizeof(short int));
            return 1;
        }
        for (int i=0;i<rnd;i++) p[i]=rnd;
        printf("%hd,%hd\n",p[0],p[rnd-1]);
        free(p);
    }
    return 0;
}
//n,rnd:0 20886,20886
//n,rnd:1 5309,5309
//n,rnd:2 3911,3911
//n,rnd:3 4697,4697
//n,rnd:4 13570,13570
//n,rnd:5 32152,32152
//n,rnd:6 13712,13712
//n,rnd:7 11819,11819
//n,rnd:8 8641,8641
//n,rnd:9 12795,12795
//