Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra abbina per la prima volta un pannello AMOLED alla tecnologia NXTPAPER con finitura opaca, affiancandoci una fotocamera periscopica da 50 MP con zoom ottico 3x, il SoC Dimensity 7400 Elite e una batteria da 5.800 mAh. Nella prova sul campo emergono luminosità di picco molto elevata, comparto fotografico solido per la fascia di prezzo e autonomia nella media, a fronte di velocità di scrittura dello storage piuttosto contenute
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-05-2008, 20:44   #1
Diablix
Senior Member
 
L'Avatar di Diablix
 
Iscritto dal: Jun 2005
Messaggi: 836
[C] Veloce chiarimento su stringhe e puntatori

Lo so che è una domanda banale, anzi proprio stupida, però finora ho quasi sempre programmato in Java e Javascript e devo ancora metabolizzare completamente i puntatori...

Allora, devo fare questa funzione:

char ** clessidra(char * tab[N][N], int *dimris)

in pratica devo restituire un vettore v di stringhe.
Se io lo dichiaro così:

char * v[2*N];
....
return v;

Mi restituisce il seguente errore: warning: function returns address of local variable

Se però io faccio così:

char * v[2*N];
char ** aux;

...

aux = v;
return aux;


Tutto funziona a meraviglia, non solo in fase di compilazione ma anche di run-time.
Qualcuno gentilmente mi spiegherebbe perchè nel secondo modo funziona e nel primo no?
So che è di una banalità imbarazzante, ma proprio mi sfugge

E soprattutto, cosa devo fare per eliminare quell'obrobrio di aux?

Grazie infinite in anticipo.

Ultima modifica di Diablix : 31-05-2008 alle 20:46.
Diablix è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 20:53   #2
Diablix
Senior Member
 
L'Avatar di Diablix
 
Iscritto dal: Jun 2005
Messaggi: 836
Sì, sì, è una costante dichiarata con un #define N 4
Diablix è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 22:47   #3
Xfight
Member
 
L'Avatar di Xfight
 
Iscritto dal: May 2006
Messaggi: 229
La sintassi giusta sarebbe di allocare con una malloc la memoria che serve e poi farla puntare da un puntatore...

Facendo :
char * v[2*N];
....
return v;

(mi sembra) si crea l'area di memoria ma il puntatore resta in qualche modo vincolato alla località della funzione e non può essere passato.

Spero di non aver detto caxxate ^^

Bye
__________________
Una volta eliminato l'impossibile, quello che resta, per improbabile che sia, dev'essere la verità
http://timestop.netsons.org/ -> il blog sull'informatica
Xfight è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 16:21   #4
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Le variabili locali di una funzione risiedono nel record di attivazione di tale funzione, che è posto sullo stack di sistema. Quando esci da quella funzione, il puntatore ad una variabile interna restituirà un indirizzo sullo stack. Se nessuno ha usato quello spazio, tutto funziona ancora bene, ma se venisse sovrascritto da una successiva chiamata a funzione? Cosa conterrebbe quella memoria?

Usa l'allocazione dinamica della memoria, e ricorda di chiamare free() ogni volta che devi deallocare memoria. Abituati a farlo, che è importante, l'altro giorno avevo dimenticato di mettere una free() in un ciclo infinito e ho sentito l'hard disk swappare dopo 3 secondi.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 17:40   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
È dovuto al fatto che probabilmente accede a quel valore dopo il ritorno dalla funzione, senza chiamarne altre nel frattempo. Se ne avesse chiamato qualcun'altra dopo del ritorno, ne avrebbe sovrascritto lo spazio sullo stack.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
L'ONU esprime preoccupazione per le oper...
OpenAI: GPT-6.1 Sol migra il COBOL all'8...
Cyberpunk 2077 porta le mod su console e...
Agenti di IA, per Akamai la sicurezza pa...
Non solo in Europa: Apple dovrà a...
iPhone Duo, il compromesso del display p...
Reolink OMVI 2i Ultra, la videocamera ib...
PowerToys 0.102: con un nuovo tool il mo...
Bose acquisisce Skullcandy per raggiunge...
I videogiochi di Star Wars dovranno sorp...
Cos'è Flint: l'AI locale per la programm...
Perplexity Computer ora gira offline sul...
LG lancia in Italia i nuovi laptop gram ...
Spotify dice addio ai vincoli di Android...
Leica Q3 43 Formula 1: carbonio, Microve...
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: 17:46.


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