Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Star Wars Zero Company è l'erede di XCOM 2
Star Wars Zero Company è l'erede di XCOM 2
Bit Reactor porta nell’universo di Star Wars una struttura tattica che richiama apertamente XCOM 2, ma la arricchisce con legami tra i personaggi, progressione ruolistica, gestione della base e un sistema di combattimento costruito attorno a tre Punti Azione e alle risorse condivise della squadra
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-08-2014, 21: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 21:10.
carugo è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2014, 21:27   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
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, 11: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 11:27.
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2014, 12:09   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
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, 12: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, 13: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 14:40.
carugo è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2014, 19: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


Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Google perde la testa: AI Overview conso...
Anthropic presenta Claude Sonnet 5.5, e ...
ESA e ClearSpace svilupperanno un satell...
Oracle, stock option da quasi un miliard...
Starship: si è conclusa anticipat...
Un computer quantistico ha funzionato ne...
Sovranità sui dati: AWS è ...
Il nuovo nome della distro Linux mobile ...
Due ventole da 220 mm e non solo: Cooler...
Truffa telefonica via Google Ads: il bro...
Google pensiona le Gems di Gemini: cosa ...
Flight 14: incertezza per un problema a ...
C'è un problema con i robot Tesla: i dip...
Raggi gamma anomali dalla Via Lattea sve...
NIO vende il 30% della divisione scambio...
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: 00:52.


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