Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
OnePlus 15 nasce per alzare l'asticella delle prestazioni e del gaming mobile. Ma non solo, visto che integra un display LTPO 1,5K a 165 Hz, OxygenOS 16 con funzioni AI integrate e un comparto foto con tre moduli da 50 MP al posteriore. La batteria da 7.300 mAh con SUPERVOOC 120 W e AIRVOOC 50 W è la ciliegina sulla torta per uno smartphone che promette di offrire un'esperienza d'uso senza alcun compromesso
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
Vediamo come si comporta il Ryzen 5 7500X3D, nuovo processore di casa AMD che fonde 6 core Zen 4 con la tecnologia 3D V-Cache, particolarmente utile in scenari come il gaming. Annunciato a un prezzo di listino di 279€, il nuovo arrivato sarà in grado di diventare un riferimento per i sistemi budget? Ecco cosa ne pensiamo.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-08-2014, 22:08   #1
carugo
Member
 
Iscritto dal: Oct 2008
Messaggi: 42
[C++] problema Segmentation fault

Ciao a tutti

Ho un problema con questo programmino che utilizza l 'algoritmo quicksort per ordinare un vettore di interi creati a random, in run-time mi va in crash dovuto a un segmentation fault non capisco perchè.....

Codice:
#include <cstdlib>
#include <iostream>

using namespace std;

const int QUANTI=100;

int v[QUANTI];

void stampaVet (int v[], int num_ele)
{
     for (int i=0; i<num_ele; i++)
        cout<< v[i] << "  ";
}

void quickSort( int arr[], int left, int right)
{
int i = left;
int j = right;
int y = 0;

int z = arr[(left + right)/2];

do
 {
   while(arr[i] < z) i++;
   while(z < arr[j]) j--;
   
  if (i<=j)
    { 
      y= arr[i];
      arr[i]= arr[j];
      arr[j]= y;
      i++;
      j--;
     }
  } while (i<=j);
  
    if (left < j)
       quickSort(arr,left,j);
    
    if (i < right);
       quickSort(arr,i,right);
}

void preparaVettore (int v[] , int num_ele)
 {
     for (int i=0; i<num_ele; i++)
         v[i]= rand();
  }
       

int main(int argc, char *argv[])
{
    
     preparaVettore(v,QUANTI);
     stampaVet(v,QUANTI);
     quickSort(v,0,QUANTI-1);
     stampaVet(v,QUANTI);
     
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Qualche idea?

TNX a tutti

Ultima modifica di carugo : 26-08-2014 alle 22:10.
carugo è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2014, 22:27   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2780
Prova ad eseguire l'algoritmo con carta e penna (o anche mentalmente) con questo array:
1 2 3 4 5 1 1

C'è chiaramente qualcosa che non va... rivedi l'algoritmo del quicksort, hai dimenticato qualcosa.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2014, 12:24   #3
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Codice:
void quickSort( int arr[], int left, int right)
{
int i = left;
int j = right;
int y = 0;

int z = arr[(left + right)/2];

do
 {
   while(arr[i] < z) i++;
   while(z < arr[j]) j--;
   
  if (i<=j)
    { 
      y= arr[i];
      arr[i]= arr[j];
      arr[j]= y;
      i++;
      j--;
     }
  } while (i<=j);
  
    if (left < j)
       quickSort(arr,left,j);
    
    if (i < right);
       quickSort(arr,i,right);
}
Zoomiamo ancora:
Codice:
    if (i < right);
Questa fa si che il tuo codice sia sempre e comunque ricorsivo, quindi 'sta routine continua a chiamare se stessa fino ad esplodere.

Togli il punto e virgola
__________________
In God we trust; all others bring data

Ultima modifica di sottovento : 27-08-2014 alle 12:27.
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2014, 13:09   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2780
Quello non l'avevo visto, che occhio di falco!
Ma se non ho visto male, corretto quello potrebbero esserci altri problemi.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2014, 13:14   #5
gbhu
Senior Member
 
Iscritto dal: Apr 2008
Messaggi: 1242
Tutto bene con i due cicli while piazzati subito all'inizio del blocco do ?
gbhu è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2014, 14:47   #6
carugo
Member
 
Iscritto dal: Oct 2008
Messaggi: 42
Grazie a tutti raga

Stavo diventando pazzo grazie Sottovento ora tutto ok alla prossima

CIauzzzz

Ultima modifica di carugo : 27-08-2014 alle 15:40.
carugo è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2014, 20:36   #7
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Quello non l'avevo visto, che occhio di falco!
Si chiama fortuna
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto SONY BRAVIA 8 II e BRAVIA Theatre System 6: il c...
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo KTC H27E6 a 300Hz e 1ms: come i rivali ma a met&...
La morte del gatto Kit Kat riaccende il ...
iPhone 16 128GB, in 4 colori, a 695€: &e...
Il primo microprocessore non fu di Intel...
Nuovi arrivi tutti i giorni su Amazon Se...
Xeon Diamond Rapids solo a 16 canali: In...
ECOVACS DEEBOT T80 OMNI scontato di 600€...
Mac Pro, è davvero finita? Il Mac...
Texas nuovo cuore dell'intelligenza arti...
4,9 miliardi su Google: Buffett sfida il...
Google ha svelato un agente AI che può g...
Tesla cambia idea: è in arrivo l'...
Anche Firefox punta sull'intelligenza ar...
Stop alle super-accelerazioni delle auto...
Osservatorio AGCOM: sempre più ac...
Sempre più IA su Spotify: arrivan...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:39.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v