Более короткий и чистый способ сделать это - использовать одну кнопку для проверки и получения обоих входных значений, а затем присвоить полученные значения вашему массиву firsttext
следующим образом:
/* JavaScript */
var btn = document.querySelector("button");
var firsttext = [];
btn.addEventListener("click", function(){
var player1 = document.getElementById("firsttext");
var player2 = document.getElementById("secondtext");
if (player1.value != "" && player2.value != "") {
firsttext.push(player1.value);
firsttext.push(player2.value);
alert(firsttext);
return firsttext;
} else {
alert("Enter players' names");
}
});
<!-- HTML -->
<section id="first_section" class="first_section">
<input type="text" placeholder="Nom du premier joueur" id="firsttext"><br>
</section>
<p></p>
<section id="second_section" class="second_section">
<input type="text" placeholder="Nom du deuxième joueur" id="secondtext"><br>
</section>
<section id="button">
<button type="button" id="second_button">Suivant ></button>
</section>
Это чинит указатель в памяти. Собравшие "мусор" языки имеют свободу переместить объекты вокруг памяти для эффективности. Это все очевидно для программиста, потому что они действительно не используют указатели в "нормальном" коде CLR. Однако при требовании указателей затем необходимо зафиксировать его в памяти, если Вы хотите работать с ними.
Фиксированный оператор "прикрепит" переменную в памяти так, чтобы сборщик "мусора" не перемещал его при сборе. Если бы это действительно перемещало переменную, то указатель стал бы бесполезным и когда Вы использовали его, Вы будете пытаться получить доступ или изменить что-то, что Вы не намеревались.
Вам нужен он где угодно, Вы делаете адресную арифметику с указателями, чтобы препятствовать тому, чтобы сборщик "мусора" переместил его на Вас.
Поскольку Вы работаете в небезопасном режиме (указатель), фиксированная инструкция выделяют определенное пространство памяти той переменной. Если бы Вы не помещали фиксированную инструкцию, то сборщик "мусора" мог бы переместить в память переменную куда угодно, когда он хочет.
Надеюсь эта справка.
MSDN имеет очень похожий пример. Фиксированный оператор в основном сборка "мусора" блоков. В .NET при использовании указателя на ячейку памяти, время выполнения может перераспределить объект к "лучшему" местоположению в любое время. ТАКИМ ОБРАЗОМ, если Вы хотите получить доступ к памяти непосредственно, необходимо зафиксировать ее на месте.