Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312

    c++ problemi di segmentation fault

    Salve,
    sto facendo uno stupido problema in c++, devo inizializzare 2 vettori e inserire la somma nell'altro. Posto il codice che va in segmentation fault:
    codice:
      1 /* Creare tre oggetti vector<float> e riempire i primi due come nell'esercizio precedente. Scrivere un ciclo for che somma ogni elemento correispondente nei prrimi due     vector e mette il risultato nel terzo vector. Visualizzare tutti e tre i vector */
      2 #include<iostream>
      3 #include<fstream>
      4 #include<vector>
      5 using namespace std;
      6 const int dim1 = 3;
      7 const int dim2 = 3;
      8 int i=0;
      9 int j=0;
     10 int z=0;
     11 int valore1;
     12 int valore2;
     13 vector<float> v;
     14 vector<float> v2;
     15 vector<float> v3;
     16 int main() {
     17 cout<<"Inizializza primo vettore, inserire valori"<<endl;
     18 for ( i;i<3;i++){
     19         cin>>valore1;
     20         v.push_back(valore1);
     21 }
     22 cout<<"Inizializza secondo vettore, inserire valori"<<endl;
     23 for (j;j<3;j++){
     24         cin>>valore2;
     25         v2.push_back(valore2);
     26 }
     27 for(z;z<3;z++)
     28         v3[z]=v2[z]+v[z];
     29 cout<<"stampa vettori"<<endl;
     30 
     31 for(int a=0;a<3;a++){
     32         cout<<"valore primo vettore"<<v[a]<<endl;
     33         cout<<"valore secondo vettore"<<v2[a]<<endl;
     34         cout<<"valore vettore somma"<<v2[a]<<endl;
     35 }
     36 }

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    codice:
    for(z;z<3;z++)
              v3[z]=v2[z]+v[z];
    è sbagliato. Vediamo se capisci perché ;-)
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    io io io io..... nn ho capito.

    dim1 e dim2 a cs servono?
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Se lo capivo non scrivevo no? eheheh. Dim1 e dim2 dovevano essere le dimensioni dei vector ma alla fine ho usato i numeri...è un programmino solo per iniziare ad utilizzare il linguaggio. Ho fatto anche questo, stesso risultato:
    codice:
    #include <fstream>
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main(){
    const int dim=10;
    int valore;
    vector<int> v;
    vector<int> result;
    cout<<"Inizializzare il vettore con 10 interi"<<endl;
    for(int i=0;i<dim;i++){
            cin>>valore;
            v.push_back(valore);
    }
    for (int j=0;j<dim;j++){
            result[j] = v[j]*v[j];
            cout<<"risultato: "<<result[j]<<endl;
    }
    
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Capito, il vizio di usare java.
    Perchè però segmentation fault?

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Perché tenti di accedere a una locazione che non esiste.
    Usando il metodo at() avresti avuto un'eccezione.

    Hai tre alternative:
    1) usi push_back()
    2) fai un resize del vector con la dimensione voluta.
    3) dichiari il vector passando al costruttore la dimensione voluta.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  7. #7
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Forse xche il vettore result nn ha elementi.
    Per gli Spartani e Sparta usa spartan Il mio github

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 © 2025 vBulletin Solutions, Inc. All rights reserved.