Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    Dev (che è un IDE, non un compilatore) è vecchio e buggato, e viene fornito con una vecchia versione di MinGW; ti consiglio Code::Blocks che, se non erro, fornisce MinGW (g++) 4.5, che ha già un discreto supporto per il C++0x.
    Amaro C++, il gusto pieno dell'undefined behavior.

  2. #12
    Grazie del consiglio ancora, purtroppo devo prepararmi sul dev per motivi universitari, lavoro già come programmatore php da qualche tempo
    Cercherò di arrangiarmi con le soluzioni del vector e dell'heap, bene o male sono entrambe buone

  3. #13
    Comunque se l'array è di grandi dimensioni, ti conviene allocarlo dinamicamente, visto che usando std::vector o std::array, nel momento in cui verrà ritornato dalla funzione, l'array viene copiato.
    Per es:

    codice:
    int* crea_array (int size) {
    int* array = (int*) malloc(size*sizeof(int));
    ....
    
    return array;
    }
    In questo modo crei un'array sicuro e soprattutto, se è di grandi dimensioni, verrà evitata la copia dell'intero array (come capiterebbe con std::vector o std::array).
    lolide
    Java Programmer

    Informati

  4. #14
    In genere la copia di std::vector dovrebbe essere elisa per RVO e NRVO. Inoltre con il C++0x, grazie alla move-semantic, il problema non si porrà nemmeno più.
    Se per intanto non ti fidi della *RVO basta passare il vector come parametro per riferimento; sicuramente è meglio di restituire puntatori in quella maniera.
    Passare in giro puntatori "liberi" a roba da deallocare è una pessima idea, dovresti almeno incapsularlo in uno smart pointer, altrimenti la exception-safety va a farsi benedire.
    Amaro C++, il gusto pieno dell'undefined behavior.

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