Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-09-2004, 18:02   #1
Gogeta ss4
Senior Member
 
L'Avatar di Gogeta ss4
 
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
[c]Problema con programma in c con strutture

Ecco il codice:

Codice:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

struct prodotto //Struttura del prodotto
 {
  char nome_prodotto[50];
  char descrizione_prodotto[1000];
  int  quantita_vendute;
  int  prezzo_vendita;
  int  prezzo_acquisto;
  int  guadagno_struttura;
 };

struct guadagno_totale   //Struttura che conta il guadagno totale
{
 float guadagno_tot;
};

typedef struct guadagno_totale tot;

typedef struct prodotto articolo; /*Ridefinizione di struct prodotto in
                                  articolo*/

//Prototipi di funzione

int insert (articolo [],int);          //Funzione che carica i dati in struttura.
float guadagno (articolo [],int,tot);  //Funzione che calcola il guadagno.

void main()
{
 int scelta,controllo,totale,x;
 articolo vettore[1000];
 tot total;
 do
  {
   printf("\n                   MENU' PRINCIPALE");
   printf("\n               1)Inserisci Prodotto");
   printf("\n               2)Controlla Il Guadagno Totale Della Giornata");
   printf("\n               0)Uscita dal programma");
   printf("\n                                     Scelta: ");
   scanf ("%d", &scelta);
   switch(scelta)
    {
     case 1: controllo=insert(vettore,x);
             break;
     case 2: totale=guadagno(vettore,controllo,total);
             printf("\nFinora hai guadagnato %d Euro", controllo);
             break;
     case 0: exit(EXIT_SUCCESS);
     default: printf("\nOpzione non valida!");
    }
  } while(scelta!=0);
}

//DEFINIZIONE DELLE FUNZIONI

int insert(articolo vettore[],int x)
{
 int i;
 printf("\nQuanti Prodotti hai venduto?(MAX 1000): ");
 scanf ("%d", &x);
 for(i=0;i<x;i++)
  {
   printf("\nInserisci il nome del prodotto venduto (MAX 50 PAROLE): ");
   fflush(stdin);
   gets  (vettore[i].nome_prodotto);
   printf("\nDescrivi Il Prodotto (MAX 1000 PAROLE): ");
   fflush(stdin);
   gets  (vettore[i].descrizione_prodotto);
   printf("\nQuanti prodotti hai venduto?: ");
   scanf ("%d", &vettore[i].quantita_vendute);
   printf("\nInserisci il prezzo di acquisto del prodotto: ");
   scanf ("%d", &vettore[i].prezzo_acquisto);
   printf("\nA quanto hai venduto il prodotto?: ");
   scanf ("%d", &vettore[i].prezzo_vendita);
  }
  return x;
}

float guadagno (articolo vettore[],int controllo,tot total)
{
 int prezzo_vend,prezzo_acqu,quantita_vend,i,totale;
 for(i=0;i<controllo;i++)
  {
   prezzo_vend=vettore[i].prezzo_vendita;
   prezzo_acqu=vettore[i].prezzo_acquisto;
   quantita_vend=vettore[i].quantita_vendute;
   totale=(prezzo_vend-prezzo_acqu)*quantita_vend;
   vettore[i].guadagno_struttura=totale;
  }
 for(i=0;i<controllo;i++)
  total.guadagno_tot=total.guadagno_tot+vettore[i].guadagno_struttura;
 return total.guadagno_tot;
}
Appena avvio il programma al VOID MAIN () (neanche entra nel corspo del programma), mi da un errore e mi dice:

"Thread stopped: c:\Document ad settings\games\desktop\struct.exe Fault: access violition 0x40108b: write of address 0x30f88"

Ma che è??
Gogeta ss4 è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2004, 18:13   #2
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Posso chiederti che compilatore stai usando? perchè se non erro <conio.h> non è una funzione standard.

Potrebbe essere?

Poi, un'altra cosa ma che non è chiara a me, anche perchè pure io sono proprio agli inizi, ma nella tua struttura "prodotto", l'istanziazione dov'è?
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 15-09-2004, 18:23   #3
Gogeta ss4
Senior Member
 
L'Avatar di Gogeta ss4
 
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
borland c++
Nella struttura al posto di 500 al posto di 1000, e funzia come mai??
Non riesce ad allocare lo spazio necessario??
Gogeta ss4 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2004, 14:47   #4
Maverick82^
Senior Member
 
L'Avatar di Maverick82^
 
Iscritto dal: Sep 2001
Città: Salerno
Messaggi: 649
la struttura prodotto occupa un ampio intervallo di memoria. Nel main dichiari una array di 1000 prodotti e sommato allo spazio che viene dedicato a ogni prodotto sicuramente si avrà un violazione di accesso in memoria. Qui scatta il meccanismo di protezione degli spazi di indirizzi di memoria messo a disposizione dal sistema operativo. Cmq dipende anche dal compilatore. Prova a dichiarare un array di 50 elementi e vedrai che riuscirai ad allocare la struttura anche con escrizione_prodotto da 1000 elementi.
Maverick82^ è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2004, 15:19   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Usa una lista
Non funziona perchè esauisce lo stack...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
Oppo Find X10, X10 Pro Max e X10 E: conf...
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: 18:39.


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