|
Re: GSVector
[Re: VeT]
#261869
04/20/09 19:46
04/20/09 19:46
|
Joined: Feb 2006
Posts: 1,011 Germany
pegamode
OP
Serious User
|
OP
Serious User
Joined: Feb 2006
Posts: 1,011
Germany
|
Sorry, I didn't find the time for the new version yet (but it will come). But, I can show you how I would increment a counter variable:
var test = createGSVector();
insertIntoGSVector(test, 0);
insertIntoGSVector(test, 1);
insertIntoGSVector(test, 2);
insertIntoGSVector(test, 3);
insertIntoGSVector(test, 4);
int i = 0;
diag("\ngetFromGSVector:");
diag(str_for_num(NULL,getFromGSVector(test,(int*)i)));
i++;
diag("\ngetFromGSVector:");
diag(str_for_num(NULL,getFromGSVector(test,(int*)i)));
i++;
diag("\ngetFromGSVector:");
diag(str_for_num(NULL,getFromGSVector(test,(int*)i)));
i++;
diag("\ngetFromGSVector:");
diag(str_for_num(NULL,getFromGSVector(test,(int*)i)));
i++;
diag("\ngetFromGSVector:");
diag(str_for_num(NULL,getFromGSVector(test,(int*)i)));
Regards, Pegamode.
|
|
|
Re: GSVector
[Re: VeT]
#261983
04/21/09 13:07
04/21/09 13:07
|
Joined: Aug 2004
Posts: 1,345 Kyiv, Ukraine
VeT
Serious User
|
Serious User
Joined: Aug 2004
Posts: 1,345
Kyiv, Ukraine
|
i'm gonna crazy...
for(num=0; num<sizeOfGSVector(vPlayers); num++) {
tempChar = (CHARACTER*)(getFromGSVector(vPlayers,(int*)num));
diag("\n[!!!] CHARACTER:");
diag_var(" n: %6.3f",num);
diag_var(" s: %6.3f",tempChar.s);
diag_var(" i: %6.3f",tempChar.i);
diag_var(" j: %6.3f",tempChar.j);
}
return [!!!] CHARACTER: n: 0.000 s: 1.000 i: 5.000 j: 5.000 [!!!] CHARACTER: n: 1.000 s: 1.000 i: 5.000 j: 5.000 but the second string must be n: 1.000 s: 1.000 i: 4.000 j: 2.000
|
|
|
Re: GSVector
[Re: pegamode]
#261993
04/21/09 13:47
04/21/09 13:47
|
Joined: Feb 2006
Posts: 1,011 Germany
pegamode
OP
Serious User
|
OP
Serious User
Joined: Feb 2006
Posts: 1,011
Germany
|
Hi VeT, my current guess is that your mistake is not when reading from the vector, but when creating your struct objects. Some posts before you posted the following code:
players_number = file_var_read(fhandle);
vPlayers = createGSVector();
CHARACTER* tempChar = (CHARACTER*)malloc(sizeof(CHARACTER));
var i;
for (i=0; i<players_number; i++)
{
tempChar.s = file_var_read(fhandle);
tempChar.i = file_var_read(fhandle);
tempChar.j = file_var_read(fhandle);
tempChar.step_max = file_var_read(fhandle);
tempChar.step_left = file_var_read(fhandle);
insertIntoGSVector(vPlayers,tempChar);
}
You can't do it that way, because you have to create an object for each player. So you have to move the malloc into the loop ... this way:
players_number = file_var_read(fhandle);
vPlayers = createGSVector();
var i;
for (i=0; i<players_number; i++)
{
CHARACTER* tempChar = (CHARACTER*)malloc(sizeof(CHARACTER));
tempChar.s = file_var_read(fhandle);
tempChar.i = file_var_read(fhandle);
tempChar.j = file_var_read(fhandle);
tempChar.step_max = file_var_read(fhandle);
tempChar.step_left = file_var_read(fhandle);
insertIntoGSVector(vPlayers,tempChar);
}
Regards, Pegamode
|
|
|
|