我试图创建一个生成随机矩阵的函数。
我指点并不好,但我真的认为这应该有用。
这是我从main调用两次的函数,在两种情况下生成相同的矩阵...
int **generate_matrix(size_t m, size_t n){
int i1,i2;
int **ptr1=(int **)malloc(sizeof(int *)*m);
srand(time(0));
for(i1=0; i1<m; i1++){
ptr1[i1] = (int*)malloc(sizeof(int)*n);
for(i2=0; i2 < n; i2++){
ptr1[i1][i2]=rand()%10;
}
}
return ptr1;
}
在主要方面,我以正常方式打电话给他们:
int **matrix1,**matrix2;
matrix1=generate_matrix(3,3);
matrix2=generate_matrix(3,3);
(...)
//prints and stuff
free(matrix1);
free(matrix2);
答案 0 :(得分:2)
您正在使用srand(time(0));
播种兰特。如果你的计算足够快(即未达到下一秒),由于其粒度为1,时间将返回相同的值两次。
您可以通过播种使用明确不同的数字来检查结果。