Problema con ARRAY

di Anonimizzato15813 il
9 risposte
Salve a tutti,
qualcuno potrebbe spiegarmi come mai se io dichiaro all'inizio un'array con una dimensione di 10
e poi con un ciclo faccio stampare ciao=i non mi da errore dato che la dimensione è minore??

#include <iostream>
using namespace std;
int main()
{
int ciao [10];

int i;
for(i=0;i<=13;i++){
 ciao[i]=i;
 cout<<ciao[i]<< "\n";
}

}
Grazie mille!

9 Risposte

  • Salve
    Che compilatore usi? A me da errore.
  • Io uso code blocks
  • Mai utilizzato quindi non so precisamente come aiutarti
    Prova a vedere nelle impostazioni se le notifiche di errori di questo tipo sono disattivate.
  • Non centra l'ide, ma ha a che fare con il funzionamento dei vettori in C.

    In C un vettore NON E' un oggetto con N elementi. E solo un indirizzo di memoria. Anche se il vettore e' di 1 elemento, puoi accedere anche al 1000-mo!

    Poi entrano in gioco altri problemi, ma questa e' un'altra questione.

    E' responsabilita' del programmatore assicurarsi di non fare pasticci!
  • migliorabile ha scritto:


    Non centra l'ide, ma ha a che fare con il funzionamento dei vettori in C.

    In C un vettore NON E' un oggetto con N elementi. E solo un indirizzo di memoria. Anche se il vettore e' di 1 elemento, puoi accedere anche al 1000-mo!
    Lo so, ma certi ide avvertono il programmatore proprio per evitare che questi pasticci avvengano.
  • Ad esempio?
  • Scrivere in locazioni di memoria utilizzate da altre variabili o peggio da altri processi, non la pensi come me?
  • Wolt ha scritto:


    Scrivere in locazioni di memoria utilizzate da altre variabili o peggio da altri processi, non la pensi come me?
    Con "ad esempio?" credo intendesse "Con quale IDE?"

    Comunque sia, secondo me è pure meglio se l'IDE non ti da errori a tempo di compilazione, perché comunque non sempre potrebbe prevedere un comportamento anomalo. Ad esempio, se nel ciclo i venisse confrontato con un valore precedentemente inserito da tastiera, l'ide non potrebbe prevederlo, e il programmatore che si fida dell'ide non implementerebbe opportuni controlli per evitare che ciò avvenga.

    ciao
  • dvaosta ha scritto:


    Con "ad esempio?" credo intendesse "Con quale IDE?"
    Non ho capito neanche io molto bene la sua domanda
    In quel caso mi viene subito in mente Microsoft Visual Studio che forse è uno dei più pignoli.

    dvaosta ha scritto:


    Comunque sia, secondo me è pure meglio se l'IDE non ti da errori a tempo di compilazione, perché comunque non sempre potrebbe prevedere un comportamento anomalo.
    Dipende dai punti di vista, nel caso di un programmatore alle prime armi forse è meglio che l'IDE avverta di ogni singolo evento che potrebbe diventare un pericolo, piuttosto che scaricare la responsabilità sul programmatore. Poi nel caso di programmatori esperti hai ragione tu.
Devi accedere o registrarti per scrivere nel forum
9 risposte