the only difference is the placement of the first line.
the first one crashes, the second does not.
does not crash on every call but is
consistent and repeatable.
I am using bloodshed Dev C++ 4.9.9.2
int posKong(int n, int tk) { int dp[144],tl[4],cnt = 0;
int gp = _tiles[n].gp; int nm = _tiles[n].nm;
int i,j,k; j = 0; for (i=0; i<144; i++) {
if (_tiles[i].tk == tk && i != n) {
if (_tiles[i].gp == gp &&
_tiles[i].nm == nm) {
cnt++;
}
dp[j++] = i;
}
}
Bubble(tk,dp,j);
if (cnt == 3) {
k = 0; for (i=0; i<j; i++) {
if (_tiles[dp[i]].gp == gp &&
_tiles[dp[i]].nm == nm) {
tl[k++] = i;
}
}
if (abs(tl[2]-tl[0]) == 2) {
return 1;
}
}
return 0;
}
int posKong(int n, int tk) {
int gp = _tiles[n].gp; int nm = _tiles[n].nm;
int dp[144],tl[4],cnt = 0;
int i,j,k; j = 0; for (i=0; i<144; i++) {
if (_tiles[i].tk == tk && i != n) {
if (_tiles[i].gp == gp &&
_tiles[i].nm == nm) {
cnt++;
}
dp[j++] = i;
}
}
Bubble(tk,dp,j);
if (cnt == 3) {
k = 0; for (i=0; i<j; i++) {
if (_tiles[dp[i]].gp == gp &&
_tiles[dp[i]].nm == nm) {
tl[k++] = i;
}
}
if (abs(tl[2]-tl[0]) == 2) {
return 1;
}
}
return 0;
}












