Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]array assegnamento

    ciao.
    ho il seguente codice:
    codice:
            //prima parte
            GLfloat point[3] = {1,0,1};
    	poly->addVertex(point);
    	//seconda parte
    	point = {1,1,1};
    	poly->addVertex(point);
    la prima parte con la dichiarazione e l'assegnamento subito dopo funziona correttamente, mentre la seconda parte non funziona.
    Esiste un modo di assegnare un array gia dichiarato compatto come quello della priam parte?

  2. #2
    Codice PHP:
     const GLfloat point2 []={456};
     (
    voidstd::copy (point2point2 sizeof (point2)/sizeof (point2 [0]), point); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Grazie McApp, ma non riesco bene a capire questa parte:
    sizeof (point2)/sizeof (point2 [0])
    è un concetto che ho gia visto ma che non so come funziona.

  4. #4
    Originariamente inviato da giuseppe500
    Grazie McApp, ma non riesco bene a capire questa parte:
    sizeof (point2)/sizeof (point2 [0])
    è un concetto che ho gia visto ma che non so come funziona.
    Determina a livello di compilazione il numero degli elementi dell'array point2.

    Per comodità puoi definire una macro:
    Codice PHP:
    #define DIM_OF_ARRAY(theArray) (sizeof (theArray)/sizeof (theArray[0]))
    ...
    (
    voidstd::copy (point2point2 DIM_OF_ARRAY (point2), point); 
    Ovviamente DIM_OF_ARRAY funziona solo con array veri (non ad esempio con puntatori).

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    a livello di compilazione eh?
    E' come dividere in un espressione algebrica tra il size di tutto l'array e un elemento dell'array in quanto la grandezza dell' elemento non è piu ' importante perche divisa sopra e sotto?
    è cosi' ?
    grazie

  6. #6
    Originariamente inviato da giuseppe500
    a livello di compilazione eh?
    E' come dividere in un espressione algebrica tra il size di tutto l'array e un elemento dell'array in quanto la grandezza dell' elemento non è piu ' importante perche divisa sopra e sotto?
    è cosi' ?
    grazie
    sizeof (theArray) = dimensione in byte dell'array;
    sizeof (theArray[0]) = dimensioni in byte del primo elemento dell'array;

    Siccome gli elementi di un array hanno tutte le stesse dimensioni, ne consegue che:
    sizeof (theArray) / sizeof (theArray[0]) = numero elementi dell'array;

    Il tutto a livello di compilazione.

    Insisto theArray DEVE essere un vero array. Se fosse un puntatore il ragionamento NON funzionerebbe:

    Codice PHP:
    #include <iostream>

    #define DIM_OF_ARRAY(theArray) (sizeof (theArray)/sizeof(theArray[0]))

    int main (void){    
        const 
    int aArray []={12345678910};
        const 
    int aPointer aArray;
        
    std::cout << DIM_OF_ARRAY (aArray) << std::endl// stampa 10
        
    std::cout << DIM_OF_ARRAY (aPointer) << std::endl// stampa 1
        
    return 0;


  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    capito , grazie.
    e invece per i puntatori,ho aperto un altro post(subito sotto questo) sull'assegnamento di un elemento ad un insieme di elementi puntati da una variabile puntatore.

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.