Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95

    [c++] settare la dimensione di un array con una costante

    Salve! Vorrei dichiarare un array di "n" elementi, ho provato a fare così:

    codice:
    const int nOfPoint = squareList.size();
    PathPoint* point[nOfPoint];
    ma ottengo il seguente errore: error C2057: prevista espressione costante

    Come posso risolvere? Ovviamente non so di che dimensione sarà l'array se non a run time...e non voglio usare un vector.
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Devi usare l'allocazione dinamica della memoria ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95
    Hum...mi potresti scrivere un due righe d'esempio su come si fa?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Usa la new per allocare ....

    Cosa e' PathPoint ? Una classe? Una struttura?

    I punti sono puntatori a quella struttura/classe?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95
    oK, forse l'esempio non era ad hoc.
    Ecco una versione semplificata di quello che voglio fare:

    codice:
    int n = funzione_che_restituisce_un_int();
    int array[n];

  6. #6
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Non puoi dichiarare un array dinamico utilizzandone uno statico:
    praticamente
    codice:
    int i[n];
    A meno che n non sia un const int, non funzionerà.
    Devi usare l'allocazione dinamica della memoria, in questo modo
    codice:
    int *i = new int[n];
    //usi l'array
    delete[] n;
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95
    Capito. grazie
    Ma cavolo, adesso che provo con il mio codice ho un altro problema.
    Io devo creare un array di puntatori ad una classe.
    La classe è PathPoint.

    codice:
    PathPoint* point = new PathPoint[n];
    l'errore è il seguente: error C2512: 'PathPoint': non è disponibile alcun costruttore predefinito appropriato

    Io voglio creare questa array di puntatori e poi uno per uno inizializzarlo...come faccio?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Devi usare l'allocazione dinamica della memoria ...

    codice:
    int *i = new int[n];
    ...
    Esatto ...

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Originariamente inviato da cadue
    Capito. grazie
    Ma cavolo, adesso che provo con il mio codice ho un altro problema.
    Io devo creare un array di puntatori ad una classe.
    La classe è PathPoint.

    codice:
    PathPoint* point = new PathPoint[n];
    l'errore è il seguente: error C2512: 'PathPoint': non è disponibile alcun costruttore predefinito appropriato

    Io voglio creare questa array di puntatori e poi uno per uno inizializzarlo...come faccio?
    Per questo ti avevo chiesto informazioni sulla classe ... ma non le hai fornite ...

    Non c'e' un costruttore di default per la tua classe? Quali costruttori esistono?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95
    Ha questi due costruttori:

    codice:
    PathPoint(PathGrid* pathGrid,Vector3 position, bool walkable, PathPoint* connectPoint[]);
    PathPoint(PathGrid* pathGrid);

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.