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

    [c++] inizializzazione e new(problema specifico)

    se io inizializzo un array (char *tmp[50]) in questo modo:

    ---
    for (int t=0;t<50;t++) tmp[t]=NULL;
    ---

    e poi assegno una stringa a tmp[e] in questo modo

    ---
    tmp[e]=new char[strlen(tok)+1];
    strcpy(tmp[e], tok);
    ---

    dite che l'uso della new è superfluo? il programma così funziona, ma magari provoca qualche errore "collaterale".


  2. #2
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Solitamente la new si chiama prima di qualunque utilizzo della variabile da allocare.
    Cmq dipende da come hai dichiarato l'array. Se hai dichiarato

    char tmp[50];

    la new non ti serve e puoi passare all'inizializzazione e utilizzo dell'array.

    Se invece hai usato

    char *tmp;

    e' necessario l'utilizzo di new per allocare l'array (operazione da eseguire al posto del ciclo di inizializzazione).

    Nel tuo esempio pero' non capisco perche' devi ciclare su tutto l'array. Per inizializzarlo a un valore nullo ti basterebbe:

    tmp[0] = '\0';

    oppure

    *tmp = '\0';

    Anche perche', da che so io, NULL si usa per i puntatori e non per i char.
    ChReAn
    -------------------

    Slackware 9.1 powered

  3. #3
    è un array bidimensionale (array di stringhe)

    char *tmp[50]

    per questo devo ciclare, e dare un indirizzo ad ogni stringa.
    ma il new è superfluo vero?
    equivale a char tmp[][50] (o char tmp[50][]?)

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.