Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] assignment from incompatible pointer type fra "matrice" di interi e struct...

    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:
    codice:
    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:
    codice:
    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?

  2. #2
    Ho risolto facendo restituire alla funzione un int**.

    Grazie lo stesso.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.