## segmentation fault (core dumped) C error for structures

I have written a C program that produce a structure, give it's elements their initial values and change these values when neccessary.I can compile my program but when I try to run it,error:"segmentation fault(core dumped)" appears.I commented different parts of my program and I underentood the problem is related to my structur.The code is:
Code:
#define PN 5000 //number of players I chose
#define RN 10 //number of array's rows
#define N number of array's columns
enum logical {W,R};

main()
{
int j=0,i=0,logic=R,r[100000]={0};
struct plrrecord
{
int n;//identity number of the player
short int lfstat;//life status: dead or alive
short int ch[RN][N];
};

struct plrrecord plr[PN];

while(   i<PN  )
{
r[i]=(int)(drand48() * 10000);
for( j=0 ; j<i ; j++)
{    if( r[j]==r[i] )logic=W;}
if( logic==R )
{
cplr[r[i]].n=r[i];
i++;
}
else { logic = R; }
}
for(i=0;i<PN;i++)
printf("%i\t",cplr[i].n);/****/
return 0;
}
In my program there are many players,I give to 5000 of them a number netween 0 to 10000
which should not be repeated.I check if their number is repeated in a "while-loop".The "logic" varible helps me here.If it's value is "R" then the number is not repeated.If it's vlue is "w" then I should chose another number.The array "r" saves the random numbers chsen before.
Now I think the error is related to the line with printf,I put a /****/ in that line,because when I comment this line thre is no error anymore.
What do you thik yhe problem is?
How do you think we can solve this problem?

 PhysOrg.com science news on PhysOrg.com >> Front-row seats to climate change>> Attacking MRSA with metals from antibacterial clays>> New formula invented for microscope viewing, substitutes for federally controlled drug
 Admin Plenty of problems, I doubt what you posted compiles. Why do you use drand48() instead of a simple rand()? What is the maximum possible value of (int)(drand48()*10000)?
 100% agree with Borek: there are just way too many problems with that code snippet.

## segmentation fault (core dumped) C error for structures

I've forgotten more than I ever knew about C, but I do note that you define the player variable as 'plr' but then assign values to 'cplr'. Is that the kind of thing that might lead to pointers gleefully messing with memory?

 The problem with calling plr instead of cplr was not serous,it happend when I was omitting extra rows of my program to make it simpler( I did it so that parts that are not related to the problem do not botter us) The code is: Code: `#include #include #define PN 10 //number of players I chose #define RN 10 //number of array's rows #define N 2 //number of array's columns enum logical {W,R}; main() {printf("Hi"); int j=0,i=0,logic=R,r[100000]={0}; struct plrrecord { int n;//identity number of the player short int lfstat;//life status: dead or alive short int ch[RN][N]; }; printf("environmental sourc:"); struct plrrecord cplr[PN]; while( i<10 ) { r[i]=(int)(drand48() * 10000); for( j=0 ; j
 Admin What is the number of the last element in table[10000]? What is the maximum value of (int)(drand48() * 10000)?
 Before changing the first program,a numer like r1 between 0 and 10000-1 was saved in the 9999th element of array so the array was chosen in a way so that always the program have an empty element for it. dran48() gives a random number beween 0 and 1(not including 1 or a number in scale [0 1) ) so drand48()*10000 gives a random number between 0 and 10000 and (int)(drand48() * 10000 ) ranges from 0 to 9999 (including 9999 or an integer number in scale [0 9999])

 Tags segmentation fault, structure