Visual studio 2015 c++

di il
20 risposte

Visual studio 2015 c++

Ciao Ragazzi, sto studiando per un esame di informatica generale e dovrei programmare in c++.
uso visual studio 2015. scrivendo un codice mi è uscito questo segnale di errore, sapreste il significato?
Unhandled exception at 0x00412949 in Project371.exe: Stack cookie instrumentation code detected a stack-based buffer overrun.

20 Risposte

  • Re: Visual studio 2015 c++

    Fai vedere il codice.
    Perché usi il 2015?
  • Re: Visual studio 2015 c++

     #include <iostream>
    #define DIM 10
    using namespace std;
    int main()
    {
    	int a[DIM], i, b, temp, cont=0,t=0;
    	b = 2;
    	for (i = 0; i < DIM; i++)
    	{
    		cin >> a[i];
    	}
    	for (i = 0; i < DIM; i++)
    	{
    		if (a[i] == a[i + b])
    		{
    			cont++;
    		}
    		if ((i + b) >= 0 && (i + b) <= 9)
    		{
    			temp = a[i];
    			a[i] = a[i + b];
    			a[i + b] = temp;
    		}
    		if (cont > 0)
    		{
    			t = 1;
    		}
    	}
    	return 0;
    }

    il prof mi ha detto di usare quello
  • Re: Visual studio 2015 c++

    a[i + b]
    Se i è uguale a 9, approda in a[11].
  • Re: Visual studio 2015 c++

    E però ho messo l'if (i+b) <=9 di modo che non esca fuori dal vettore.
    la traccia dice per ogni i scambiare
    a[i] 
    con a[i+b]
    e ho ipotizzato che b fosse 2
  • Re: Visual studio 2015 c++

    Parlo del primo if:
    
    if (a[i] == a[i + b])
    {
    	cont++;
    }
    
    Stai confrontando a(i) con un numero sconosciuto.
  • Re: Visual studio 2015 c++

    No, in pratica la seconda parte dell'esercizio dice "inserire in t il valore 1 se sono stati scambiati due valori identici" quindi io prima di fare lo scambio controllo se vi sono per ogni posizione i elementi identici.
    il vettore è carico di numeri, poichè li inserisco nella prima scrittura
  • Re: Visual studio 2015 c++

    Va bene, ma non hai controllato se i+b sfora la dimensione del vettore, cosa che succede per i maggiore di 7.
  • Re: Visual studio 2015 c++

    Quando esegui

    if (a[ i ] == a[i + b])

    alla fine del ciclo quanto vale [i+b] ?
  • Re: Visual studio 2015 c++

    Alexv ha scritto:


    Va bene, ma non hai controllato se i+b sfora la dimensione del vettore, cosa che succede per i maggiore di 7.
    nulla, perchè a me interessa lavorare su quei valori all'interno del vettore
  • Re: Visual studio 2015 c++

    oregon ha scritto:


    Quando esegui

    if (a[ i ] == a[i + b])

    alla fine del ciclo quanto vale [i+b] ?
    alla fine del ciclo ogni elemento del vettore si sarà confrontato con quello in posizione i+b, di conseguenza l'ultimo elemento all'interno del vettore è quello in posizione 9
  • Re: Visual studio 2015 c++

    Non hai risposto alla mia domanda. Rileggila
  • Re: Visual studio 2015 c++

    Vale quanto
     a[i]  
  • Re: Visual studio 2015 c++

    Veramente io ti ho chiesto quanto vale l'indice i+b
  • Re: Visual studio 2015 c++

    Mmmh 11?
Devi accedere o registrarti per scrivere nel forum
20 risposte