Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2006, 12:32   #1
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
[c++] in una funzione è possibile passare in output un array?????

è possibile passare in output un array?????
una funzione così insomma non risco a crearla:

#include<stdio.h>
#include <math.h>

double a, b;
double arraydirisultati[2]; //array di 2 elementi


double [] = somma_differenza(double m, double n){
//scritto così NON funziona!!!!!! non accetta "double []"
double s, t; //variabili locali
double arraylocale[2]; //array locale
s=m+n;
t=m-n;
arraylocale[0]=s;
arraylocale[1]=t;
return (arraylocale[]);

}



void main()
{

arraydirisultati=somma_differenza(a, b);
printf("somma tra 2 e 3: %g\n",arraydirisultati[0] );
printf("differenza tra 2 e 3: %g\n", arraydirisultati[1]);
}
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 18:39   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
certo che puoi ritornare un array ma devi usare la memoria dinamica e i puntatori. Non puoi ritornare una variabile locale perché quelle variabili sono de-allocate ogni volta che esci dalla funzione.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 22:01   #3
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
quindi al posto di

double [] = somma_differenza(double m, double n)

che devo scrivere?

double[] non me lo accetta, essendo un array.
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 23:40   #4
mr_hyde
Senior Member
 
Iscritto dal: Oct 2005
Città: Genova
Messaggi: 937
Quote:
Originariamente inviato da vermaccio
è possibile passare in output un array?????
una funzione così insomma non risco a crearla:
[...]

Francamente, visto che stai usando C++, ti suggerirei l'utilizzo di STL, quindi:

Codice:
#include <iostream>
#include <vector>

typedef std::vector<double> dvectorType;

dvectorType somma_differenza(double m, double n)
{
    dvectorType tmp;

    tmp.push_back(m+n);
    tmp.push_back(m-n);

    return tmp;
}

int main()
{
    double  a = 5.0;
    double b = 8.0;

    dvectorType arraydirisultati=somma_differenza(a, b);

    std::cout << "Somma tra " << a << " e " << b << " :" << arraydirisultati[0] << std::endl;
    std::cout << "Differenza tra " << a << " e " << b << " :" << arraydirisultati[1] << std::endl;

    return 0;
}
Alcune note:
1) gli include: nelle versioni moderne di C++ gli include "base" non usano piu' il ".h"
2) in C++ e' consigliabile usare gli stream std::cout, std::cerr std::cin per l'output su standard putput, error e input da standard input
3) se usi uno std::vector hai gia' a disposizione costruttore di copia e metodi vari che altrimenti dovresti implementarti tu in una classe "array"
4) nel caso il tuo vettore di uscita potesse avere un numero variabile di elementi con
- un iteratore
- o con il metodo size() e l'operatore []
puoi comunque "navigare" tra gli elementi del vettore, senza conoscerne a priori il numero massimo
5) non devi essere tu a preoccuparti di allocazioni e deallocazioni


Se invece di usare STL vuoi propri allocare e deallocare, per gli array NON usare malloc e free, ma gli operatori del C++ new[] e delete[]
Per la new: ricordati di metterla tra try/catch e di controllare l'eccezione std::bad_alloc (molti ancora credono che in caso di fallimento venga restituito 0 (NULL), ma nello standard piu' recente di C++ NON E' PIU' COSI'.

Ciao,
Mr Hyde

P.S.: io personalmente continuo a consigliarti l'uso di STL.
__________________
MacMini Late 2009/MacMini 2018

Ultima modifica di mr_hyde : 21-03-2006 alle 00:05. Motivo: Uno dei tanti errori di battitura e accorciamento...
mr_hyde è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
SpaceX mostra nuove immagini del lancio ...
Cina: CAS Space e Guangzhou Laboratory e...
Nikon Comedy Wildlife Awards 2026: le fo...
Samsung Galaxy A57 e A37 costano di più ...
Windows 11 26H2 taglia il consumo di RAM...
KINGPIN è tornato! Il re dell'ove...
CPU usata, ban ereditato: il caso del Ry...
Spunta un engineering sample di Ryzen 9 ...
iPhone 18 Pro, alcuni utenti segnalano s...
Android Auto: Gemini ascolta la domanda ...
OpenAI avvisa oltre 100 organizzazioni p...
Dall'AI alla SI: il rebranding di Trump ...
0patch offrirà supporto esteso pe...
Sudo sembra un iPod, ma nasconde una car...
Meta, OpenAI e Google rifanno OpenClaw: ...
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: 05:58.


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