[我试图做的是创建一个函数,thay为数组分配内存并用指定范围内的随机数(在我的情况下为50-76)填充它。srand
在主体中,我使用[ C0]标头。
<time.h>
我想获得类似unsigned* randomgen(int size, unsigned max, unsigned min)
{
int i;
unsigned* arr = (unsigned*)malloc(size * sizeof(unsigned));
for (i = 0; i < size; i++) {
arr[i] = (rand() % (max - min + 1)) + min;
printf("%d ", arr[i]);
}
return arr;
}
的数字。发生的情况是生成的数字看起来像60 52 68 ...
。这仅在此函数中发生。当我在3526 4582 13224 ...
中执行此操作时,会得到想要的结果。
:)
main
它产生以下输出:
void randomgen(int *intarray, int size, int max, int min)
{
int i;
for (i = 0; i < size; i++) {
intarray[i] = (rand() % (max - min + 1)) + min;
printf("%d ", intarray[i]);
}
}
int main(int argc, char **argv){
int *iA;
int i;
if ( (iA = (int*)malloc(20 * sizeof(int))) == NULL ){
printf("error");
return 0;
}
randomgen(iA, 20, 59, 50);
for (i = 0; i < 20; i++) {
printf("iA[%d]=%d\n", i, iA[i]);
}
return 0;
}