حل لحجز الذاكرة بسهولة عن طريق دالة alloc تستقبل معاملين

الدالة هي كالتالي

func alloc(pointer: ptr, size: Int): Void {
    pointer = Memory.alloc(size)~cast[ptr];
};

طريقة الاستخدام هكذا

def var: ptr[array[Char]];

alloc(var, 5);
String.assign(var, "Hello");

بدل التالي

def var: ptr[array[Char]] = Memory.alloc(5)~cast[ptr[array[Char]]];
String.assign(var, "Hello");

كي يعمل هذا الاقتراح يجب على الدالة أن تستقبل مؤشرًا على مؤشر كي تتمكن من تغيير قيمة المؤشر، أي تكون كالتالي:

func alloc(pointer: ptr[ptr], size: Int): Void {
    pointer~cnt = Memory.alloc(size)~cast[ptr];
};
.
.
Memory.alloc(var~ptr, 5)
1 Like

نعم صحيح، هل تتوقع انا سوف تساعد ام لا

أظنها ستساعد كحل مؤقت لحين إكمال البرمجة الكائنية التي ستسهل التعامل مع الذاكرة.