1

私はint(列挙型)を持つ3つの配列を持っています:

static int *openEnv[] = {INGMenuItemLogon,INGMenuItemSpace,INGMenuItemAppointment,INGMenuItemInfo,INGMenuItemSettings};
static int *closedEnv[] = {INGMenuItemLogoff,INGMenuItemSpace,INGMenuItemOverview,INGMenuItemAccounts,INGMenuItemTransfer,INGMenuItemAnalyse,INGMenuItemAppointment,INGMenuItemInfo,INGMenuItemSettings};
int *currentEnv[];

ユーザーがボタンをタップした場合、またはcurrentEnvに変更したいopenEnvclosedEnv

- (void) tap
{
    if( closed ) currentEnv = closedEnv;
    else currentEnv = openEnv;
}

しかし、これによりビルドエラーが発生します。 openEnvclosedEnv2 つの異なるサイズがあります。コピーするにはどうすればよいですか? 静的配列への参照またはコピーを作成するにはどうすればよいですか?

4

3 に答える 3

2

これを試して:

static int *openEnv[] = {INGMenuItemLogon,INGMenuItemSpace,INGMenuItemAppointment,INGMenuItemInfo,INGMenuItemSettings};
static int *closedEnv[] = {INGMenuItemLogoff,INGMenuItemSpace,INGMenuItemOverview,INGMenuItemAccounts,INGMenuItemTransfer,INGMenuItemAnalyse,INGMenuItemAppointment,INGMenuItemInfo,INGMenuItemSettings};
//int *currentEnv[];
int **currentEnv;

- (void) tap
   {
     if( closed ) 
        currentEnv = closedEnv;
     else 
        currentEnv = openEnv;
   }
于 2013-04-25T10:43:09.443 に答える
1

int へのポインターの配列を宣言しました。正しいだろう

static int openEnv[] = {INGMenuItemLogon,INGMenuItemSpace,INGMenuItemAppointment,INGMenuItemInfo,INGMenuItemSettings};
static int closedEnv[] = {INGMenuItemLogoff,INGMenuItemSpace,INGMenuItemOverview,INGMenuItemAccounts,INGMenuItemTransfer,INGMenuItemAnalyse,INGMenuItemAppointment,INGMenuItemInfo,INGMenuItemSettings};

(スターなし*) int の配列を宣言し、

int *currentEnv;

intへのポインタとして。次に、 eg を代入して、 の要素を指すcurrentEnv = openEnvようにすることができます。currentEnvopenEnv

于 2013-04-25T10:50:54.653 に答える
1

使用するだけです:int ** currentEnv = <the array>

于 2013-04-25T10:44:13.573 に答える