أخبار الموقع

الإعلام الآلي — لغة C: المؤشرات والذاكرة الديناميكية — الثانية ثانوي (شعب علمية) — بكالوريا — المنهاج الجزائري

الإعلام الآلي — لغة C: المؤشرات والذاكرة الديناميكية — الثانية ثانوي (شعب علمية) — بكالوريا — المنهاج الجزائري

المؤشرات (Pointers) في لغة C تسمح بالتعامل المباشر مع عناوين الذاكرة. هذا يعطي مرونة كبيرة في برمجة الأنظمة.

1. مفهوم المؤشر

المؤشر هو متغير يخزن عنوان متغير آخر. يعرف بإضافة * قبل اسم المتغير. مثال: int *p; يعني p مؤشر لعدد صحيح.

للحصول على عنوان متغير نستخدم & (عنوان). مثال: int x = 5; int *p = &x; يعني p يشير إلى x.

للوصول إلى قيمة المتغير المدبّر نستخدم * (إلغاء الإشارة). مثال: printf(“%d”, *p); يطبع 5.

2. العمليات على المؤشرات

إسناد عنوان: p = &x; (p يشير إلى x).

تغيير القيمة المدبّرة: *p = 10; (تغيير قيمة x إلى 10).

العمليات الحسابية: p++ ينتقل إلى العنوان التالي (بحجم نوع المؤشر).

3. المؤشرات والمصفوفات

اسم المصفوفة هو مؤشر على أول عنصر فيها. int T[5]; int *p = T; (أو p = &T[0]).

الوصول للعناصر: *(p + i) يعادل T[i].

4. الذاكرة الديناميكية

في لغة C، يمكن تخصيص ذاكرة أثناء تنفيذ البرنامج باستخدام الدوال التالية:

malloc: تخصيص ذاكرة. int *p = (int*)malloc(n * sizeof(int));

calloc: تخصيص ذاكرة مع تهيئة بالأصفار. int *p = (int*)calloc(n, sizeof(int));

realloc: إعادة تخصيص ذاكرة. p = (int*)realloc(p, nouveau_taille);

free: تحرير الذاكرة. free(p);

5. مثال بكالوريا

اكتب برنامجاً بلغة C يطلب من المستخدم إدخال عدد من الأعداد الصحيحة، يخزنها في مصفوفة ديناميكية، ثم يحسب المجموع والمعدل.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int n, i, somme = 0;
    int *T;
    printf("أدخل عدد الأعداد: ");
    scanf("%d", &n);
    T = (int*)malloc(n * sizeof(int));
    if (T == NULL) {
        printf("فشل تخصيص الذاكرة");
        return 1;
    }
    for (i = 0; i < n; i++) {
        printf("T[%d] = ", i);
        scanf("%d", &T[i]);
        somme += T[i];
    }
    printf("المجموع = %d", somme);
    printf("المعدل = %.2f", (float)somme / n);
    free(T);
    return 0;
}

بكالوريا 2021: اشرح دور الدالة malloc في الكود أعلاه.

الحل: malloc تخصص مساحة ذاكرة ديناميكية بحجم n ضعف sizeof(int). تعيد عنوان أول بايت في الذاكرة المخصصة. إذا فشل التخصيص تعيد NULL.

دروس مشابهة

شاهد أيضا

الماء — دورة الماء في الطبيعة — العلوم الفيزيائية — السنة الأولى متوسط — المنهاج الجزائري

الماء — دورة الماء في الطبيعة المستوى: السنة الأولى متوسط | المادة: العلوم الفيزيائية في …

الرياضيات — قياس الطول: السنتيمتر والمتر — السنة الثانية إبتدائي — المنهاج الجزائري

قياس الطول: السنتيمتر والمتر مرحباً بكم تلاميذ السنة الثانية إبتدائي الأعزاء في درس جديد من …

الاحتراق — الوقود والأكسجين — العلوم الفيزيائية — السنة الأولى متوسط — المنهاج الجزائري

الاحتراق — الوقود والأكسجين المستوى: السنة الأولى متوسط | المادة: العلوم الفيزيائية في هذا الدرس …

التمدد الحراري — تطبيقات في الحياة اليومية والهندسة — العلوم الفيزيائية — السنة الأولى متوسط — المنهاج الجزائري

التمدد الحراري — تطبيقات في الحياة اليومية والهندسة المستوى: السنة الأولى متوسط | المادة: العلوم …

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

🎓 العد التنازلي لبكالوريا 2026
00 يوماً
:
19 ساعة
:
01 دقيقة
:
52 ثانية

📚 أحدث الدروس

عرض الكل ←
📖
س3 ابتدائي

التربية الإسلامية — بر الوالدين

فضل بر الوالدين وأهميته في الإسلام

🔢
س5 ابتدائي

الرياضيات — مساحة القرص

حساب مساحة الدائرة — ط × نق²

⚛️
3 ثانوي

الفيزياء — ثنائي القطب RL

تمارين بكالوريا مع الحلول

🌍
3 ثانوي

التاريخ — الحرب العالمية الأولى

الأسباب والنتائج — بكالوريا

📝 بنك الفروض والاختبارات

عرض الكل ←
فروض الفصل الأول جميع المواد — الأولى متوسط
اختبارات الفصل الثاني مع الحلول — الثالثة متوسط
مواضيع بكالوريا مقترحة مع الحلول — 3 ثانوي
مسابقات الأساتذة نماذج وحلول — 2026