PDA

Visualizza la versione completa : [C] Errore "Assignment from incompatible pointer type" fra matrice di interi e struct


fbcyborg
06-12-2010, 23:20
Salve a tutti,

non riesco a capire come risolvere questa faccenda.
Ho una funzione che deve restituire una struct contenente una "matrice" di interi e un intero, ed è definita come segue:


typedef struct{
int **intervals;
int chunks; // rows of the matrix
}intervals_st;


La mia funzione produce una matrice Nx2, con N dipendente da una certa situazione.
Alla fine della funzione la mia "matrice" contiene i valori esatti, e se li stampo sono quelli che mi aspetto.
Ora il codice della mia funzione prevede qualcosa del genere:


intervals_st struttura;
int intervals[N][2]; //ad esempio N=4
[...]
generazione dei dati e dei valori da memorizzare nella matrice;
int chunks = un valore calcolato... (es. 1024)
Stampa della matrice OK;
[...]
struttura.intervals = intervals; //<- e qui ottengo il warning
struttura.chunks = chunks;

return struttura;


Ora se mi metto nella porzione di codice che chiama la suddetta funzione, il valore struttura.chunks riesco a stamparlo, mentre se voglio stampare la matrice (che ricordo, nella funzione viene stampata e i valori ci sono), non mi stampa nulla.

Quel warning mi fa pensare ovviamente che ho sbagliato qualcosa, ma non so come correggere quella dicitura. Ho fatto una cosa simile in un altra circostanza, ma con una matrice di char (char **), e infatti in quel modo funziona.

Forse sbaglio a dichiarare i campi della struct, ma non so come potrei dichiararlo, perché come faccio sbaglio.

L'unica soluzione che mi viene in mente è quella di dichiarare una int **intervals all'interno della struttura invece di una matrice prefissata. Ma speravo di non doverlo fare.

Come posso fare?

fbcyborg
07-12-2010, 11:22
Ho risolto facendo restituire alla funzione un int**.

Grazie lo stesso.

Loading