Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2009, 16: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, 19: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 19:35.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2009, 01: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


MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Sempre più applicazioni ottimizza...
Skullcandy Icon, prezzo quasi dimezzato ...
WhatsApp cambia le regole dei gruppi: 4 ...
Brave finisce in tribunale: avrebbe ruba...
Electrolux, notte di trattative al Mimit...
LG OLED C6 da 77 pollici, il prezzo scen...
Apple avvisa 99 Paesi: spyware mercenari...
Zenbook S Con Core 5 Ultra e schermo da ...
Prendere appunti con dito, penna e AI: c...
Itch.io, filtro "No AI": i giochi visibi...
Microsoft conferma: il nuovo speed test ...
Il capo può far leggere a Claude le chat...
L'AI fa volare AMD, ma c'è un set...
Le scuole statunitensi che rifiutano Gem...
WhatsApp, addio al supporto su iPhone e ...
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: 10:25.


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