Menu
Coddy logo textTech

מערכים בזיכרון דינמי

חלק מהיחידה יסודות במסלול ה-Solidity של Coddy. שיעור 37 מתוך 53.

השתמשו ב־new uint256[](length) כדי להקצות מערך בזיכרון שאורכו נבחר בזמן הריצה. האיברים שלו מתחילים בערך אפס. אף על פי שהטיפוס משתמש בסוגריים ריקים, אי אפשר לשנות את גודלו של מערך שהוקצה בזיכרון באמצעות push או pop.

הפקודות בקטע הזה רצות בתוך הפונקציה main שסופקה.

uint256[] memory values = new uint256[](3);
values[1] = 19;
console.log(values.length);
console.log(values[0]);

למערך יש שלושה מקומות, ורק למקום האמצעי הוקצה ערך. האיבר הראשון שלו נשאר אפס. המאפיין length מדווח כמה איברים קיימים, ולא מה הערך של האיבר האחרון.

מערך uint256 חדש שהוקצה בזיכרון מתחיל עם איברים שערכם אפס.

challenge icon

אתגר

קל

הקצה מערך בזיכרון באורך n, הצב את marker באיבר האחרון שלו, ואז הדפס את אורכו ואת האיבר האחרון. n הוא בין 1 ל-8.

הבדיקות מעבירות ארגומנטים ל-main בסדר הזה: uint256 n, uint256 marker. כל בדיקה מתחילה עם מצב חוזה חדש.

השתמש ב-console.log עבור הפלט המבוקש. הדפס רק את הערכים המבוקשים, אחד בכל שורה, ללא תוויות נוספות אלא אם המשימה מציינת אותן.

נסו בעצמכם

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 n, uint256 marker) external view {
        // כתבו כאן את הפתרון שלכם.
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Solidity אונליין