Problema con un array di puntatori da inviare ad un thread

di Anonimizzato13817 il
2 risposte
Salve a tutti!

Ho un problema quasi assurdo:

Devo passare un array di puntatori ad un thread perché deve lavorarci, faccio tutto come si deve se non che l'indirizzo del vettore non arriva al thread!

Mi spiego meglio:

il mio è un vettore del tipo
hash_elem *hash_table[10];
dove hash_elem è una struttura.

la struttura che uso per passare gli argomenti al thread è del tipo:
struct main_s
{
    hash_elem **hash_table;
    /*Altri Elementi*/
}
Nella quale inserisco l'indirizzo del vettore. La cosa molto (poco) simpatica è che finché questa struttura non la passo alla pthread_create l'indirizzo di hash_table esiste, mentre quando provo a controllare dentro il thread appena creato il valore di main_args->hash_table è 0.
Tutti gli altri elementi sono perfettamente a posto, puntatori e non, solo questo vettore da problemi. Ho provato anche a convertire l'indirizzo in un long int e a passare quello ma niente, il valore rimane sempre 0. Il fatto è che prima funzionava egregiamente, ora non più..

2 Risposte

  • Ci fai vedere tutto il codice coinvolto?
  • Ciao,
    non so se sia questo il problema ma la butto lì: dentro alla funzione eseguita dal thread, lo fai il casting al tipo di dato corretto? Perché la pthread_create passa gli argomenti come (void *)...

    Comunque concordo con oregon: senza vedere il codice è difficile dire qualcosa di sensato.

Devi accedere o registrarti per scrivere nel forum
2 risposte