Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
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.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-02-2011, 16:30   #1
Negative_creep
Senior Member
 
L'Avatar di Negative_creep
 
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
[C] Problema puntatori

Ciao a tutti, ho questa struttura dati:

struct a{
int x;
int y;
float z;
}*vett;

vett=calloc(100,sizeof(struct a));

Quindi avrò vett[0].z = 55.5
vett[1].z = 43.5
vett[2].z = 62.4

ecc..

Ho bisogno di ordinare vett in base al valore di z (che è un float) usando il mergesort ma non riesco a passare l'indirizzo di vett
alla funzione.

mergesort((*vett).z,0,n-1); /* Dove n è in numero degli elementi */

Sono sicuro che (*vett).z non va bene (infatti il compilatore mi segnala "Incompatible type for argument 1 of mergesort) ma non so come passare quell'indirizzo alla funzione che si aspetta un vettore di float.
__________________
CPU: AMD Phenom II X4 965 C3 Motherboard: Asrock 980DE3/U3S3 R2.0 Ram: G-Skill F3 CL7 4GB DDR3 1333Mhz Alimentatore: Corsair VX550w Hard-Disk: Samsung SSD EVO 860 500GB - WD Caviar Black 1 TB
Negative_creep è offline   Rispondi citando il messaggio o parte di esso
Old 02-02-2011, 17:50   #2
- Lke -
Senior Member
 
Iscritto dal: Nov 2006
Messaggi: 489
Quote:
Originariamente inviato da Negative_creep Guarda i messaggi
Ciao a tutti, ho questa struttura dati:

struct a{
int x;
int y;
float z;
}*vett;

vett=calloc(100,sizeof(struct a));

Quindi avrò vett[0].z = 55.5
vett[1].z = 43.5
vett[2].z = 62.4

ecc..

Ho bisogno di ordinare vett in base al valore di z (che è un float) usando il mergesort ma non riesco a passare l'indirizzo di vett
alla funzione.

mergesort((*vett).z,0,n-1); /* Dove n è in numero degli elementi */

Sono sicuro che (*vett).z non va bene (infatti il compilatore mi segnala "Incompatible type for argument 1 of mergesort) ma non so come passare quell'indirizzo alla funzione che si aspetta un vettore di float.
La sparo:
Codice:
mergesort(*((*vett).z),0,n-1);
Prova, al massimo non va :P
- Lke - è offline   Rispondi citando il messaggio o parte di esso
Old 02-02-2011, 17:55   #3
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
ma è la funzione mergesort di stdlib.h?

se sì, ti basta scrivere una funzione che confronta, tipo:

Codice:
int compare(const void * a, const void *b)
{
  struct a *v1, *v2;
  v1 = (struct a*)a;
  v2 = (struct a*)b;
  if (v1.z == v2.z)
  {
    return 0;
  }
  else if (v1.z > v2.z)
  {
    return 1;
  }
  else
  {
    return -1;
  }
}
e poi chiamare la funzione con

Codice:
  mergesort(vett, n, sizeof(struct a), compare);
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 02-02-2011, 18:41   #4
Negative_creep
Senior Member
 
L'Avatar di Negative_creep
 
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
Grazie delle risposte, in realtà ho dovuto cambiare il prototipo e la funzione del mergesort in quanto l'errore è concettuale,

vett[] è un vettore di strutture di tipo struct a che è ben diverso da
vett[1].z ossia un campo della struttura di tipo float.

La funzione mergesort come la qsort() si aspetta un vettore di elementi non un singolo elemento

Grazie ancora per l'aiuto
__________________
CPU: AMD Phenom II X4 965 C3 Motherboard: Asrock 980DE3/U3S3 R2.0 Ram: G-Skill F3 CL7 4GB DDR3 1333Mhz Alimentatore: Corsair VX550w Hard-Disk: Samsung SSD EVO 860 500GB - WD Caviar Black 1 TB
Negative_creep è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
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...
Home Assistant su uno schermo touch econ...
L'IA entra nei negozi Unieuro con Google...
"What Holds Us", la nuova most...
La Formula 1 divide sui motori, ma il su...
Un computer a DNA esegue moltiplicazioni...
Ibride cinesi, l'Europa fissa il tetto a...
iPhone Duo potrebbe dar vita a una gamma...
Denza Z9S: la berlina elettrica con il r...
Valve abilita i driver e il supporto all...
Terafab, il progetto di Musk finisce in ...
Il meglio di Amazon in 42 articoli: sono...
ECOVACS WINBOT W2 PRO OMNI a 349€: ecco ...
Samsung Gallery Cloud Sync introduce il ...
Dyson V8 Cyclone a 249€: scopa elettrica...
Rifiuti elettronici, l'altra faccia dell...
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: 13:21.


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