|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2009
Messaggi: 83
|
[C++] int* ptrdiff_t*
Salve a tutti!!
Ho un problema con una libreria opensource (robotvision). Compilandola mi da questo errore in più righe: cannot convert ‘int*’ to ‘ptrdiff_t* ho letto un po' su internet ed ho scoperto che è un problema legato ai sistemi a 64bit. Ho quindi "risolto" sostituendo i vari int* con long* la compilazione va a buon fine ma non funziona nessuna delle demo. Volevo sapere se secondo voi può dipendere dalla mia soluzione (o se comunque ce n'è una più consigliabile) perchè per ora non saprei cosa modificare per far girare la demo. Grazie in anticipo! Francesco |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Per la cronaca, il ptrdiff_t è un tipo che trovi nella libreria "cstddef", e rappresenta la differenza tra due puntatori pertanto ha la forma di un tipo integrale (occhio quindi che si entra in un terreno abbastanza scottante del c/c++, in quanto l'algebra dei puntatori ha senso in determinate e ben precise circostanze). Il mio consiglio quindi è quello di postare innanzitutto il listato incriminato. |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2009
Messaggi: 83
|
Grazie per la risposta..
Dato che non ho scritto io il codice e non posso perderci troppo tempo per spulciarlo (tra l'altro sono un ing. meccanico io) speravo bastasse quell'indicazione Questa è l'originale: Codice:
sparse_matrix.i = (int*)malloc(sizeof(int)*sparse_matrix.nzmax); .... int * p_i = sparse_matrix.i; Codice:
sparse_matrix.i = (long*)malloc(sizeof(int)*sparse_matrix.nzmax); ... long * p_i = sparse_matrix.i; L'intero file è sparse_matrix.h, reperibile in questa cartella insieme a tutto il resto. L'unica cosa che mi pare una dichiarazione per sparsematrix è Codice:
private:
#ifdef RV_SUITESPARSE_SUPPORT
cholmod_sparse * data;
#else
cs sparse_matrix;
#endif
Codice:
unsigned short cs pomeriggio guardo meglio se riesco a trovare qualche riferimento esterno (utilizza CSparse, magari la definizione di sparse_matrix è là dentro :/ ) Forse può esser utile sapere che l'errore che mi riporta lanciando la demo è "Segmentation fault"; anche questo può dipendere dalla versione del sistema operativo a 64 bit? Ultima modifica di fdf86 : 13-06-2012 alle 17:30. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:38.




















