Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2009, 15:58   #1
C3ls1us
Junior Member
 
L'Avatar di C3ls1us
 
Iscritto dal: Jun 2007
Messaggi: 25
[C] Lista semplice/Segmentation Fault

Vi riassumo il mio problema:
stò provando ad implementare in C delle liste semplici e a prendere dimestichezza con i puntatori a struct.
Il mio esercizio consisteva nell'implementare una lista semplice, inserire dei dati, e poter visualizzarli in seguito.
Probabilmente si tratta di un errore sintattico, ma è da un giorno che sono fermo, nonostante abbia sfogliato kg di pagine web e non...! Grazie Mille!!!
Codice:
#include <stdio.h>
#include <stdlib.h>

typedef struct lista
{
  int x;
  int y;
  struct lista *succ;
}ls;

struct lista *pt,*punt;  //pt e pt ausiliario

int main()
{
  int n;

  printf("Num di elementi\t");
  scanf("%d",&n);
  
  pt=NULL;  //inizializzazione
  pt=(ls*)malloc(sizeof(ls)*2);
  if (pt==NULL)
    return 1;  //controllo su malloc
  punt=pt;

  printf("ins dati\n"); 
  while(n>0)
  {
    scanf("%d",&pt->x);
    scanf("%d",&pt->y);
    n--;
    pt=pt->succ;
  }
  pt=punt;
  printf("%d,%d\n",pt->x,pt->y);
  free(pt);
  return 0;
}
Quote:
mattia@mattia:~/c$ ./a.out
Num di elementi 3
ins dati
1
1
2
Segmentation fault
C3ls1us è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2009, 18:30   #2
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7263
beh funziona solo se inserisci un solo elemento, perchè allochi memoria solo per il primo elemento. il fatto che moltiplichi size per 2 non ha effetto in quanto il prossimo elemento non sarà necessariamente in un indirizzo di memoria sequenziale al primo elemento (altrimenti sarebbe un array e non una lista).
ecco una versione funzionante
Codice:
#include <stdio.h>
#include <stdlib.h>

typedef struct lista
{
  int x;
  int y;
  struct lista *succ;
}ls;

ls *testa = NULL;   //  testa della lista
ls *cur = NULL;  //  cursore

int main()
{
  int n;

  printf("Num di elementi\t");
  scanf("%d",&n);

  printf("ins dati\n"); 
  while(n>0)
  {
    ls *elem = (ls*)malloc(sizeof(ls));
    scanf("%d",&elem->x);
    scanf("%d",&elem->y);
    
    if(cur==NULL) // la lista e' vuota
    {
      cur = elem;  // il cursore punta all'elemento che ho appena creato
      testa = cur;    // il nuovo elemento diventa anche la testa della lista
    }
    else  // altrimenti cur punta all'ultimo elemento inserito nella lista
    {
      cur->succ = elem;  // il campo succ dell'ultimo elemento inserito punta al nuovo elemento creato
      cur=cur->succ;    // si scorre il cursore all'ultimo elemento creato
    }

    --n;
  }

  // parto dal primo elemento per liberare la memoria
  cur = testa;
  while(cur != NULL)
  {
    printf("%d,%d\n",cur->x,cur->y);
    free(cur);
    cur = cur->succ;  // quando arrivo alla fine della lista cur puntera' a NULL interrompendo il while
  }

  return 0;
}
come vedi alloco memoria ogni volta che inserisco un elemento

Ultima modifica di k0nt3 : 24-01-2009 alle 18:35.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2009, 00:36   #3
C3ls1us
Junior Member
 
L'Avatar di C3ls1us
 
Iscritto dal: Jun 2007
Messaggi: 25
Grazie!!!!! Mi sfuggiva qualcosa! Grazie davvero!
C3ls1us è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Qualcomm aumenterà i prezzi dei c...
TOP 12 Amazon weekend: al top una stampa...
Come sfruttare le offerte di Amazon per ...
Intelligenza artificiale: le Big Tech sa...
Xbox Game Pass, il mese di luglio 2026 s...
Smartphone troppo cari: Qualcomm ripensa...
Age of Empires III: Definitive Edition t...
GitHub contro i report fatti dall'IA: ri...
Google spinge sugli schermi ultra-wide: ...
Occhiali smart, Instagram bannerà chi re...
L'UE approva PRIMA: il chip fotovoltaico...
Nothing smentisce l'uscita da alcuni mer...
Tassa sui pacchi extra-UE, Giorgetti: da...
Jensen Huang esordisce su X: 'non mettet...
Ha reso lo smartphone e Amazon lo ha 'pe...
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:18.


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