Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-06-2008, 14:21   #1
cecce88
Junior Member
 
Iscritto dal: Jun 2007
Messaggi: 24
[C] Algoritmo su stringhe

Raga tra poco ho un esame di C e sto vedendo alcuni appelli vecchi... e questo mi sconvolge!!
Non voglio sapere la soluzione, ma solamente un consiglio sul procedimento, perchè non so assolutamente dove iniziare!

Scrivere un programma che si pone l'obiettivo di leggere e poi memorizzare una serie di
stringhe (non si sa quante) di lunghezza variabile, senza occupare memoria oltre quella
necessaria. Il programma acquisisce da input, all'inizio, il numero di stringhe che si
vogliono memorizzare (0 se nessuna), e dovrà effettuare poi la memorizzazione solo di
quelle richieste. Il programma inoltre, prima di acquisire da input ogni stringa, acquisirà,
sempre da input, la lunghezza della stringa che segue, che deve essere comprensiva di
terminatore. Se la stringa fornita è più lunga di quanto dichiarato, i caratteri in eccesso non
devono essere memorizzati. Per uscire si digiterà 0 alla richiesta della lunghezza.
L’input del programma sarà quindi del tipo:
<numero di stringhe>
<lunghezza della prima stringa>
<valore della prima stringa>
…
<lunghezza ultima stringa>
<valore ultima stringa>
Si chiede di stampare alla fine del programma tutte e sole le stringhe memorizzate,
prima di liberare la memoria.
Non si può usare la funzione realloc(), né si possono utilizzare variabili con
allocazione non fissa, ad esempio:
{
<leggi n>;
char Stringa[n];
}
Sarà ulteriormente (e di molto) valutata la stesura dello stesso programma senza
che si sappia da input il numero di stringhe da memorizzare. In questo, e solo in
questo, caso è ammessa la realloc().


Avevo pensato di prendere in input il numero delle stringhe da inserire! E poi fare un for ogni volta ed utilizzare una malloc!
ES.
for(i=0;i<n;i++)
{scanf("%d",&dim);
s=(char *)malloc(dim * sizeof(char));
}

Non so se questo procedimento è giusto, però vorrei sapere come risolvere il problema in quell'altra maniera, senza che si sappia da input il numero di stringhe da memorizzare, utilizzando la realloc!
Grazie!
cecce88 è offline   Rispondi citando il messaggio o parte di esso
Old 05-06-2008, 16:33   #2
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Si può fare a meno sia del numero di stringhe, sia della lunghezza della stringa, almeno credo

Pseudocode:
Codice:
//alloco un po di inutile spazio vuoto
memory = malloc( sizeof char );
index in memoria = 0;

while( true ) //break quando serve
{
     acquisisco stringa
     
     //calcolo quanti caratteri ci sono nella stringa prima del terminatore
     size_t string_length = 0;
     for( finche' non incontro /0, conto i caratteri. )
     {
         //il for e' vuoto
     }
     //contiamo pure il terminatore
     string_length++;

     if string_length = 1 break; //esce se si preme invio e basta

     memoria richiesta = index in memoria + string_length;

     rialloco la memoria per avere lo spazio richiesto
     
     memcopio dentro la stringa, all'index in memoria.

     il prossimo index e' la fine della memoria corrente.
}

//e poi svuota
free( memory )
EDIT: cambiato tutto in parole, era praticamente svolto l'esercizio (mi spiace cecce88)
__________________
*ToMmO*

devlog | twitter

Ultima modifica di Tommo : 05-06-2008 alle 16:38.
Tommo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
La ASUS ROG Xbox Ally X20 è dispo...
Musk, rilasciato il trailer del docufilm...
Carburanti, dopo Eni anche IP annuncia u...
HEO Space ha rilasciato una nuova immagi...
La missione Artemis III sarebbe in ritar...
Apple apre Music Hall, una sala concerto...
Adobe arriva su Gemini e Claude: nuove f...
Non solo Fideuram: quasi 2 milioni di it...
I lettori CD di fascia alta potrebbero s...
Tutto il meglio di Amazon weekend: 5 nov...
Proscenic P15+ a 113€ su Amazon: scopa e...
TP-Link Wi-Fi 6 a 59,99€ e Tenda 4G03 Pr...
Un quasi top di gamma a 461€: lo smartph...
Roborock Saros 20 Neo e Flow Complete: 3...
Mac mini si trasforma: chip a 2 nanometr...
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: 07:27.


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