2014-03-31 6 views
0

친구의 프로그램을 보았습니다. 그는 calloc을 사용하고 임의의 gen으로 1d 배열을 채 웁니다. 그들의 프로그램을 컴파일 할 때, 그는 배열의 같은 값을 얻고있다.calloc을 사용하여 1d 배열을 동적으로 할당 할 때 동일한 값이나 다른 값을 얻겠습니까?

#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); 

출력 :

첫 방송 : 여기

내 코드입니다 First run

두 번째 실행 : Second run

답변

0

당신은 o[m]에 할당하지만 one[m]을 인쇄 .

무작위 순서를 초기화하려면 프로그램 시작시 srand으로 전화해야합니다.

+0

나는 동일한 가치 또는 다른 가치를 얻으려고합니까? – eLg

+0

무엇과 같은 값입니까? 같은 값이 10 번 반복 되었습니까? 너 친구와 같은 가치? 두 경우 모두 아니오 - 0에서 19 사이의 임의의 값을 가져야합니다. 출력 결과를 보여 주면 더 쉬울 것입니다. –

+0

프로그램이 여러 번 실행될 때, 배열에 대해 같은 값을 얻고 있습니다. ... – eLg