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 12-11-2007, 12:52   #1
agus83
Member
 
Iscritto dal: Oct 2007
Messaggi: 48
questione di dati (in C)

Ciao a Tutti,
vi pongo un mio problema su un programma in linguaggio C.
Ecco la situazione:
una funzione riceve un pacchetto (nel caso SRTP) tramite * void
-> void funzione(void *pkt)

Questo pacchetto è stato creato facendo memcpy di diversi campi (stringhe,interi). Non è dunque una struttura vera e propria,ma una serie di byte. Io dovrei prendere il valore di un determinato campo, che nello specifico è un unsigned int quando è stato copiato. So le posizioni di inizio dei singolo campi (#byte),ma nn so come ricavare il numero e porlo nella mia variabile. Grazie Mille
agus83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 14:25   #2
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
se ho capito bene:
Codice:
memcpy( &Variabile, buffer, sizeof(Variabile) );
dove buffer è ovviamente la posizione del singolo campo
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 14:41   #3
agus83
Member
 
Iscritto dal: Oct 2007
Messaggi: 48
esatto,cosi avevo fatto io (sommando a buffer l'offest necessario). Purtroppo pero' sembra non funzionare...
Ho fatto delle prove,ma inconcludenti->

memcpy(pkt,stringa,sizeof(stringa));
printf("%s ",pkt,sizeof(stringa)); -> LO VISUALIZZA PERFETTO
memcpy(pkt+sizeof(stringa),&(codice),sizeof(codice)); -> 'CODICE' è UN INT

memcpy(&index,pkt+sizeof(stringa),sizeof(index));
printf(" ->%d\n",index); -> NULLA PURTROPPO.


Help Me!!!
agus83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 14:49   #4
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
c'è un vero casino nel tuo codice ...

Codice:
memcpy(pkt,stringa,sizeof(stringa));
la destinazione è a sinistra (come in tutte le funzioni standard del C)
quindi copi da stringa a pkt per lunghezza stringa ?

Codice:
printf("%s ",pkt,sizeof(stringa)); -> LO VISUALIZZA PERFETTO
passi 2 parametri alla printf ma ne visualizzi solo uno

Codice:
memcpy(pkt+sizeof(stringa),&(codice),sizeof(codice)); -> 'CODICE' è UN INT
quà si capisce che hai invertito dest e source. Codice va a sinistra perchè è la destinazione
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 15:23   #5
agus83
Member
 
Iscritto dal: Oct 2007
Messaggi: 48
Allora,
con -> memcpy(pkt,stringa,sizeof(stringa)); voglio appunto avere come destinazione pkt.
Nella printf avevo dimenticato di calcellare un pezzetto :P
printf("%s ",pkt); -> LO VISUALIZZA PERFETTO
Al pkt aggiungo anche un'intero oltre che alla stringa gia presente
memcpy(pkt+sizeof(stringa),&(codice),sizeof(codice));
Adesso provo a mettere l'intero che ho copiato su un'altra variabile per vedere se riesco a riprendere il valore
memcpy(&index,pkt+sizeof(stringa),sizeof(index));
Verifico.....
printf(" ->%d\n",index); -> NULLA PURTROPPO.
agus83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 15:27   #6
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Sembra giusto quindi metti tutto il codice altrimenti non si riesce a capire bene

che tipo di dato è pkt ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 15:41   #7
agus83
Member
 
Iscritto dal: Oct 2007
Messaggi: 48
Hai ragione,avrei dovuto farlo prima...sorry
ecco il file mini di prova che ho fatto

main()
{
unsigned char stringa[] = "stringa di prova";
unsigned char pkt[64];
unsigned char *confronto = NULL;
int index;
int i;
int codice;

codice=547;

memcpy(pkt,stringa,sizeof(stringa));
printf("%s \n",pkt);
memcpy(pkt+sizeof(stringa),&(codice),sizeof(codice));
printf("%s \n",pkt);
memcpy(pkt+sizeof(codice),stringa,sizeof(stringa));
memcpy(&index,pkt+sizeof(stringa),sizeof(index));
printf(" -> %d \n",index);

return 0;
}

Purtoppo 'index' alla fine non contiene il valore di 'codice'
agus83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 15:46   #8
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
c'è una linea di troppo, adesso funzica

Codice:
main()
{
	unsigned char stringa[] = "stringa di prova";
	unsigned char pkt[64];
	unsigned char *confronto = NULL;	
	int index;
	int i;
	int codice;

	codice=547;

	memcpy(pkt,stringa,sizeof(stringa));
	printf("%s \n",pkt);
	memcpy(pkt+sizeof(stringa),&(codice),sizeof(codice));
	printf("%s \n",pkt);
	//memcpy(pkt+sizeof(codice),stringa,sizeof(stringa));
	memcpy(&index,pkt+sizeof(stringa),sizeof(index));
	printf(" -> %d \n",index);

	return 0;
}
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 15:53   #9
agus83
Member
 
Iscritto dal: Oct 2007
Messaggi: 48
Grande,è vero!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ma perchè se aggiungo altra roba al pacchetto non riesco a estrapolare lo stesso il valore con la memcpy e la dimensione del valore??? mmmhhh...in teoria non dovrebbe cambiare....nn so'...
agus83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 16:04   #10
agus83
Member
 
Iscritto dal: Oct 2007
Messaggi: 48
risolto,sono uno scemo avevo sbagliato l'offset :P
Grazie Mille per l'aiuto!!!!!!!
agus83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2007, 16:07   #11
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da agus83 Guarda i messaggi
risolto,sono uno scemo avevo sbagliato l'offset :P
Grazie Mille per l'aiuto!!!!!!!
vedo che hai capito da solo.

Prego.

Se posso consigliarti: soprattutto in C (ma vale sempre) devi avere sotto controllo qualsiasi istruzione
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è 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...
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...
TOP 10 offerte del weekend Amazon: ai pr...
TV LG C6 e B5 da 55 pollici: due OLED da...
Tomb Raider: Catalyst rinviato al 2028, ...
Lefant M210 Omni a 265,99€: il robot sli...
Paramount sospende la fusione con Warner...
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: 15:28.


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