【发布时间】:2020-07-16 17:11:54
【问题描述】:
我尝试做的是创建一个函数,它为数组分配内存并用指定范围内的随机数填充它(在我的情况下为 50-76)。srandis 在主中,我使用<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 中执行此操作时,我得到了想要的结果。
【问题讨论】:
-
你将什么传递给
randomgen?你在main做什么? -
我传递了数组大小的大小,范围最小值的下半部分和最大值的上限。如果它在
main中完全有效,我在函数中的代码是 thed 并且它实现了我预期的结果 -
它对我来说非常好用。您是否将最小值和最大值传递给正确的字段?
-
感谢您的帮助,看来我没有按正确的顺序传递参数。谢谢大家。
标签: c arrays function random dynamic-memory-allocation