Видеосъемка SDKs и Платформы для [закрывших] окон

Думаю, вы написали addInt что-то вроде этого:

void addInt(int[] a, int n){
    int[] newArray = new int[a.length+1];
    System.arraycopy(a, 0, newArray, 0, a.length);
    newArray[a.length] = n;
    a = newArray;        // WRONG!
}

Параметры метода в Java передаются значением , что в основном означает, что a в addInt и [ 116] в вызове addInt(a1, 2) две отдельные переменные. При входе в addInt, a первоначально относится к тому же массиву, что и a1, но кроме этого нет дальнейших отношений между a и a1, и впоследствии изменение a для ссылки на что-то еще не имеет эффект на a1.

Ваша единственная возможность - изменить addInt так, чтобы он возвращал новый массив как результат функции:

int[] addInt(int[] a, int n){
    int[] newArray = new int[a.length+1];
    System.arraycopy(a, 0, newArray, 0, a.length);
    newArray[a.length] = n;
    return newArray;
}

, а затем вызывать его так:

a1 = addInt(a1, 2);
5
задан bsruth 13 October 2010 в 22:08
поделиться

3 ответа

2
ответ дан 15 December 2019 в 06:36
поделиться

Просто для пояснения:

0
ответ дан 15 December 2019 в 06:36
поделиться

Еще немного:

  • Твен - В основном для сканеров и подобных устройств , но также поддерживается для некоторых камер. AFAIK Twain имеет собственную лицензию и является бесплатной.
  • libdc1394 - LGPL
0
ответ дан 15 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: