能不能用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
//