Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - dev c++
Forum - C/C++ - dev c++

Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Segnala al moderatore
Postato alle 15:26
Sabato, 05/02/2011
ho scritto un programma con dev c++,però quando lo faccio partire mi dà :invia segnalazione errori a microsoft,ho cercato di scrivere il programma sotto altro nome ma il problema continua,da che dipende?ho ripostato la domanda visto che nell'altra non avevo messo il codice e mi dava aggiungi commento
è questo il testo
Codice sorgente - presumibilmente C++

  1. #include<iostream>
  2. using namespace std;
  3. void parola(int n, char b[])
  4. {cout<<"scegli";
  5. cin>>n;
  6. cin>>b;
  7. for(int i = 0; i<n; i++)
  8. cout<<b[i];
  9. }
  10. int main()
  11. {int a;
  12. char g[a];
  13. parola(a, g);
  14. system("pause");
  15. return 0;
  16. }


PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Up
3
Down
V
Segnala al moderatore
Postato alle 15:54
Sabato, 05/02/2011
per creare un vettore di "a" elementi, "a" deve essere costante (const).
altrimenti devi ricorrere a new, cioè all'allocazione dinamica.

inoltre stai insistendo troppo con questi thread, la prox volta vado di ban e buonanotte.

gia..e @ciao888: una delle prime cose che insegnano in programmazione è inizializzare le variabili, se non lo fai la variabile potrebbe contenere un indirizzo di memoria a caso, il piu delle volte nullo, ma pensa cosa succederebbe se quello spazio in memoria fosse usato da un altro programma - carlduke - 06/02/11 14:43
o da un'altra variabile dello stesso programma - carlduke - 06/02/11 14:44


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
-2
Down
V
Segnala al moderatore
Postato alle 16:49
Sabato, 05/02/2011
Codice sorgente - presumibilmente C++

  1. #include<iostream>
  2. using namespace std;
  3. void parola(int n, char b[])
  4. {cout<<"scegli";
  5. cin>>n;
  6. cin>>b;
  7. for(int i = 0; i<n; i++)
  8. cout<<b[i];
  9. }
  10. int main()
  11. {int a;
  12. cout<<"Inserire la dimensione dell'array: ";
  13. cin>>a
  14. char g[a];
  15. parola(a, g);
  16. system("pause");
  17. return 0;
  18. }


ah capito,in pratica nel main devo di nuovo scegliere la dimensione altrimenti non me lo riconosce ciò che ho fatto in void parola,grazie mille!! - ciao888 - 05/02/11 16:53
non so come si mette miglior risposta:) - ciao888 - 05/02/11 16:57
ho provato ma non mi fa niente,clicco ma il risultato non cambia,cmq grazie !!! - ciao888 - 05/02/11 17:13
perchè evidentemente la soluzione non è corretta...? - HeDo - 06/02/11 12:45
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
-3
Down
V
Segnala al moderatore
Postato alle 15:29
Sabato, 05/02/2011
devi dare un valora ad a per creare un array di 'a' elementi

a deve essere costante... - HeDo - 05/02/11 15:55
ma perchè la gente deve sparare a sproposito, sei un ignorante e non sai di esserlo, questo è molto grave. Gli array in C/C++, se dichiarati staticamente come in questo caso, NON possono avere il numero di indice preso da una variabile. Prendi in mano un libro di C prima di sparare stronzate. - HeDo - 05/02/11 16:22
ma non c'è da provare, è così come dico io punto. L'unica cosa che lontanamente si può pensare è che il compilatore sia abbastanza furbo da capire che tra la dichiarazione di a e la dichiarazione di g non ci sono istruzioni eseguibili che possono cambiare il suo valore e la tratta come costante. - HeDo - 05/02/11 16:31
guarda che quello che ha scritto anthony funziona, quindi HeDo, mi sa che sei tu l'ignorante... - vaclav - 05/02/11 16:40
antony potresti riscivermi il mio programma corretto da te per favore,sto leggendo i vostri commenti ma non ci sto capenso niente - ciao888 - 05/02/11 16:46
potrebbe funzionare per la ragione che ho detto ma questo è PROFONDAMENTE SBAGLIATO. Ma c'è qui qualcuno che sa programmare in C... - HeDo - 05/02/11 17:01
prova a mettere istruzioni non note a compile-time, vedi che succede. Quindi, visto che voi avete ragione, la malloc/new l'hanno inventata perchè erano pirla... inoltre 3 esami all'università sulle architetture dei calcolatori vanno buttati nel cesso. Chissà cos'è lo stack, heap, etc... - HeDo - 05/02/11 17:27
siete divertenti da sentire... - Saf - 11/02/11 14:36
PM