Je ne sais pas ce qu'est votre string
, mais je vais supposer qu'il gère sa propre mémoire.
Vous avez deux solutions :
1 : Renvoie un struct
qui contient tous les types dont vous avez besoin.
struct Tuple {
int a;
string b;
};
struct Tuple getPair() {
Tuple r = { 1, getString() };
return r;
}
void foo() {
struct Tuple t = getPair();
}
2 : Utiliser des pointeurs pour transmettre les valeurs.
void getPair(int* a, string* b) {
// Check that these are not pointing to NULL
assert(a);
assert(b);
*a = 1;
*b = getString();
}
void foo() {
int a, b;
getPair(&a, &b);
}
Celui que vous choisissez d'utiliser dépend en grande partie de vos préférences personnelles quant à la sémantique que vous aimez le plus.