Newsgroup: it.comp.lang.c++
Titolo: ARRAY

scusate ma sono alle prime armi e stò davvero scraniando xchè non riesco a
trovare un modo per:
1- definire in modo dinamico un array: da quello che ho letto però si può
definire un array solo in modo statico, ma dagli esempi inviati
dall'università nella funzione main del programma l'array non era definito
ma chiamava una procedura che ritornava la lunghezza dell'array, in modo
dinamico quindi. tutto ciò io l'ho anche provato sul computer di casa ma col
cazzo che funziona!!! Chi mi sa spiegare il perchè?
2- definire sempre in modo dinamico un array di caratteri però. mi spiego
meglio: io vorrei che si potesse creare un array di dimensioni indefinita,
chiamare una funzione che mi chieda di immettere una frase(1 stringa di
caratteri), che mi ritorni la lunghezza della stringa in modo da definire la
lunghezza dell'array e, come se non bastasse, mi memorizzi i vari caratteri
della stringa nell'array stesso.
CyberEko

Dipende in cosa programmi e il tipo di array.
Allora in C devi sempre specificare la dimensione.
Nel C++, dato che questo è un NG per il C++, è diverso.
Se usi un tipo CHAR allora puoi omettere, p. es:
CHAR lpText[];
oppure che è lo stesso ma senza Array
CHAR * lpText;
Il problema risulta però quando chiami una funzione che ha bisogno della
dimensione dell'array. Credo che per ovviare ai tuoi problemi basterebbe
questo:
class MyObjforArray{
    public:
        int deArray;
        int MyObjforArray(deArray){
            return deArray;
        }
        int MyArray[deArray];
};

 della stringa nell'array stesso.
Soluzione 1 (non raccomandata): ti costruisci da te una classe che faccia
tutto quello che hai chiesto (č possibile, č possibile: se vuoi ne ho un
esempio, te lo invio).
Soluzione 2 (raccomandata): ti affidi a std::string. Presenta tutte le
caratteristiche che hai elencato
Ciao
Domenico Barra

 ha scritto nel messaggio
news:9deV5.8096$tS2.2...@news.infostrada.it...

innanzi tutto ti devo dire che se anche questo č un NG per C++ a me
servivano suggerimenti per il C
per la soluzione 1, se non hai problemi, la vorrei vedere e mi potresti
spiegare perchč non č raccomandata
per la soluzione 2 volevo sapere se std::string č un header file? e se non
lo č cos'č?
comunque ti ringrazio CyberEko

 della stringa nell'array stesso.
C'e' apposta la classe std::string della standard library, ed il
metodo getline:
std::string buffer;
...
std::getline(istream, buffer);
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
Murphy's law: "Anything that can go wr
/bin/fortune: segmentation fault - core dumped

 servivano suggerimenti per il C
Allora avresti dovuto chiederli su it.comp.lang.c
Ciao,
Nicola

 comunque ti ringrazio CyberEko
Scrivi un messaggio con l'indirizzo al quale vuoi ricevere l'esempio a :
dob...@iol.it
Ad ogni modo, si tratta di C++, quindi se programmi solo in C non penso
possa servirti. Lo stesso vale per std::string.
std::string è una classe della libreria standard, che rappresenta la
soluzione ideale ai problemi che hai descritto, nessuno escluso. Per
utilizzarla (ricorda sempre che è C++) devi includere l'header <string>.
Ciao
Domenico Barra

 delete p;  //distrugge l'array
delete[]
ANCHE con i tipi base!
prima di scatenare una polemica (visto un precedente capitato in ufficio),
rimando alla fonte che ha consentito di chiudere la disputa: C++ Informer
#08, dal sito di Carlo Pescio (
www.eptacom.net
). Abbonamento gratuito :D
cordiali saluti

 ANCHE con i tipi base!
Spiacente, sono un perenne distrattone e penso che ve ne siate accorti. Sì,
l'operatore da usare è delete[], anche se non c'era bisogno di citare la
fonte, perché è una caratteristica nota dell'operatore delete, quella di
avere "due faccie", una per gli elementi singoli e un'altra per gli array.
Domenico Barra

 ha scritto nel messaggio
news:6ItV5.1266$hk4....@news.infostrada.it...


 ha scritto nel messaggio
news:R1zV5.3920$hk4.1...@news.infostrada.it...
