Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: [C] elementi matrice

  1. #1

    [C] elementi matrice

    Ciao raga prima di postare ho cercato alcuni problemi simili ma mi sono perso tra i millemila XD puntantori.

    Comunque vi espongo il mio problema

    ho una funzione che riceve in input un puntatore ad una matrice float n x m, vorrei contare le righe e le colonne ma non riesco ad uscirne illeso cerebralmente.

    dato che in teoria dovrei avere 2 output (numero di righe e numero di colonne) dovrei creare 2 funzioni.

    per esempio

    ho una matrice float matrice[5][1];

    e due funzioni:

    int contarighe(float* m);
    int contacolonne(float* m);

    ho provato un po' di esperimenti con _msize(m)/sizeof(float) ma mi da 517700

    E' possibile creare queste funzioni?

  2. #2
    pensandoci un altro po' mi è venuto in mente che potrei scorrere gli elementi fino a trovare un elemento che non è valido cioè non float... è sempre possibile implementarlo?

  3. #3
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Puoi considerare un valore arbitrario come sentinella, che però dev'essere assolutamente compreso nei limiti della matrice. Se la sfori, il comportamento è indefinito.
    Per indefinito intendo che può funzionare o formattarti la macchina.
    Se non puoi usare un valore sentinella, sei costretto a portarti in giro i limiti di matrice.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  4. #4
    non ho ben capito cosa intendi per valore sentinella cmq io dovrei creare solo delle funzioni che un utente richiama dal suo "main"
    la dimensione della matrice la sceglie l'utente non mi è dato saperla...
    quindi presumo che il limite sentinella non posso utilizzarlo e cosa intendi per limite di matrice?

    per float matrice[5][1] quali sono i limiti?

  5. #5
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Come valore sentinella puoi decidere che (ad esempio) se trovi il valore -0.25 hai raggiunto il limite della matrice.
    per float matrice[5][1] quali sono i limiti?
    5 righe e 1 colonna.
    Ma questo è un fondamentale del C e se non lo sapevi già, hai carenze sulle basi del linguaggio.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  6. #6
    forse non mi sono spiegato bene in principio...

    io aquisisco una matrice m x n di qualsiasi dimensione (che non conosco) voglio restituire numero di righe e numero di colonne

  7. #7
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Non è possibile ricavare i limiti di una matrice dal suo puntatore. O ricevi i limiti o ti affidi a un valore sentinella obbligatoriamente compreso nei limiti.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  8. #8
    però dal puntatore posso risalire alla dimensione in byte della matrice?

  9. #9
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    No. Un puntatore non ha nessuna informazione su cosa punta, a parte il tipo di dato.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da ViolenceJack
    però dal puntatore posso risalire alla dimensione in byte della matrice?
    No, il puntatore contiene solo l'indirizzo del primo elemento. Sapendo però quanti elementi hai ti basta fare una semplice moltiplicazione...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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 © 2024 vBulletin Solutions, Inc. All rights reserved.