pako90
05-03-2007, 17:59
Salve a tutti!!!!
Stavo cercando di provare la funzione qsort della libreria C++ cstdlib con il seguente codice:
// prova qsort
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int compare(const void *a, const void *b);
main(int argc, char **argv)
{
int lung = atoi(argv[1]);
int a[lung];
srand(time(0));
for(int i = 0; i< lung; i++)
a[i] = rand();
qsort(a, lung, sizeof(int), compare);
for(int i = 0; i < lung; i++)
cout << a[i] << "\n";
cout << endl;
}
int compare(void *a, void *b)
{
if((int*)a < (int*)b) return -1;
if((int*)a > (int*)b) return 1;
return 0;
}
ma quando provo a compilare:
bash-3.1$ g++ qsort.cpp -o qsort
/tmp/ccDuWwrn.o(.text+0x197): In function `main':
: undefined reference to `compare(void const*, void const*)'
collect2: ld returned 1 exit status
bash-3.1$
C'è qualcuno che mi saprebbe spiegare perchè? Non riesco a capire proprio la tipologia di errore che ho commesso!!!
Stavo cercando di provare la funzione qsort della libreria C++ cstdlib con il seguente codice:
// prova qsort
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int compare(const void *a, const void *b);
main(int argc, char **argv)
{
int lung = atoi(argv[1]);
int a[lung];
srand(time(0));
for(int i = 0; i< lung; i++)
a[i] = rand();
qsort(a, lung, sizeof(int), compare);
for(int i = 0; i < lung; i++)
cout << a[i] << "\n";
cout << endl;
}
int compare(void *a, void *b)
{
if((int*)a < (int*)b) return -1;
if((int*)a > (int*)b) return 1;
return 0;
}
ma quando provo a compilare:
bash-3.1$ g++ qsort.cpp -o qsort
/tmp/ccDuWwrn.o(.text+0x197): In function `main':
: undefined reference to `compare(void const*, void const*)'
collect2: ld returned 1 exit status
bash-3.1$
C'è qualcuno che mi saprebbe spiegare perchè? Non riesco a capire proprio la tipologia di errore che ho commesso!!!