Και λοιπόν, αλήθεια είναι ότι όλα έτρεξαν οκ! Τελικά μάλλον εγώ ήμουν
ανυπόμονος και βιάστηκα να κάνω post. Για την αλήθεια του πράγματος,
υπήρχε το εξής πρόβλημα:
static int compare(void *p, void *q, void *pointer)
{
unsigned i = 0;
#define pp ((char *) p)
#define qq ((char *) q)
for (i = 0; i <= last_column; i++)
{
if (i >= first_column)
{
int n = *pp - *qq;
if (n != 0)
return n;
}
if (*pp == 0 && *qq == 0)
return 0;
if (*pp != 0)
pp++;
if (*qq != 0)
qq++;
}
return 0;
}
Είχε πρόβλημα με την εντολή pp++; και qq++; έκανα τις εξής αλλαγές και έτρεξε:
static int compare(void *p, void *q, void *pointer)
{
unsigned i = 0;
char *pp, *qq;
pp = (char *)p;
qq = (char *)q;
// #define pp ((unsigned char *) p)
// #define qq ((unsigned char *) q)
for (i = 0; i <= last_column; i++)
{
if (i >= first_column)
{
int n = *pp - *qq;
if (n != 0)
return n;
}
if (*pp == 0 && *qq == 0)
return 0;
if (*pp != 0)
pp++;
if (*qq != 0)
qq++;
}
return 0;
}
Το παραθέτω απλά αν κάποιος έχει το ίδιο κόλλημα να ξέρει τι να κάνει.
Τάσος Καραγιάννης
Baby debugging steps...