Random 当我使用calloc动态分配1d数组时,我应该得到相同的值还是不同的值?

Random 当我使用calloc动态分配1d数组时,我应该得到相同的值还是不同的值?,random,dynamic-allocation,calloc,Random,Dynamic Allocation,Calloc,我看了我朋友的节目。 当他使用calloc并用random gen.填充一维数组并编译程序时,他得到的数组值是相同的 这是我的密码: #include<stdio.h> #include<stdlib.h> #include<time.h> srand(time(NULL)); int *n, s=10; one=(int*) calloc(s,sizeof(int)); for(m=0;m<s;m++) { o[m]

我看了我朋友的节目。 当他使用calloc并用random gen.填充一维数组并编译程序时,他得到的数组值是相同的

这是我的密码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>


srand(time(NULL));
int *n, s=10;

 one=(int*) calloc(s,sizeof(int));       
 for(m=0;m<s;m++)
 {
    o[m] =(rand()%20);               
    printf("%d\n",o[m]);
 }
free(one);
#包括
#包括
#包括
srand(时间(空));
int*n,s=10;
一=(int*)calloc(s,sizeof(int));

对于(m=0;m您正在分配给
o[m]
但打印出
一个[m]


您还需要在程序开始时调用
srand
,以初始化随机序列。

我应该得到相同的值还是不同的值?与什么相同的值?相同的值重复了十次?与您的朋友相同的值?两种情况都不需要-您应该得到一个介于0和19之间的随机值。这样会更容易如果只是显示输出。当程序运行多次时,它们得到的数组值相同…这就是
srand(time(NULL))
调用用于在每次运行程序时将随机序列初始化为不同的值。添加该值后是否重试?每次在我的系统上都会产生不同的结果(一旦我将所有
one
s更改为
o
s并添加了一个主函数和一些声明)。输出看起来是正确的。请注意,calloc与数字无关。calloc只分配一个内存区域来存储数据。生成随机数的是rand调用。