2

メイン関数にはセットがあります

    NSMutableSet *set1 = [[NSMutableSet alloc ]init];
    NSMutableSet *set2 = [[NSMutableSet alloc ]init];

いくつかの値で「初期化」できる関数が必要です。

いいね(でも動かない):

void initSet (NSMutableSet *set1, NSMutableSet *set2)
{
    NSArray *a1 = [NSArray arrayWithObjects: intNum(1), intNum(2), nil];
    NSArray *a2 = [NSArray arrayWithObjects:intNum(3), intNum(4), intNum(5), intNum(6), intNum(7), nil];

    set1 = [NSMutableSet setWithArray: a1];
    set2 = [NSMutableSet setWithArray: a2];
}
4

1 に答える 1

0

セットは、ポインタへのポインタとして渡す必要があります。通常のポインターは値で渡されるため、呼び出し元から渡された値を変更しても変更さset1set2ません。initSet

void initSet (NSMutableSet **set1, NSMutableSet **set2)
{
    NSArray *a1 = [NSArray arrayWithObjects: intNum(1), intNum(2), nil];
    NSArray *a2 = [NSArray arrayWithObjects:intNum(3), intNum(4), intNum(5), intNum(6), intNum(7), nil];

    *set1 = [NSMutableSet setWithArray: a1];
    *set2 = [NSMutableSet setWithArray: a2];
}

この関数を次のように呼び出します。

NSMutableSet *s1, *s2;
initSet(&s1, &s2);
于 2012-10-27T03:19:38.220 に答える