آرایه‌های پویا و malloc

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

من هم الذين قاموا بتدريس مادة آرایههای پویا في نیمسال أول؟

  • دکتر مرادی (correct)
  • دکتر سامی
  • دکتر علی
  • دکتر هاشمی (correct)

ما هو العام الدراسي المذكور في الوثيقة؟

  • 1400-01
  • 1402-03 (correct)
  • 1403-04
  • 1401-02

أي من الخيارات التالية يتعلق بمادة تدريسية؟

  • تنمية المهارات الشخصية
  • سلوكيات الطلاب
  • الرياضيات العالية
  • آرایههای پویا (correct)

ما هي عناوين الدكاترة المذكورين في الوثيقة؟

<p>دكتور (B)</p> Signup and view all the answers

ما هو الفصل الدراسي المشار إليه في الوثيقة؟

<p>نصف السنة الأول (D)</p> Signup and view all the answers

ما هو الاسم الكامل للجامعة التي تستضيف كلية الهندسة الكهربائية وعلوم الحاسوب؟

<p>جامعة طهران (A)</p> Signup and view all the answers

ما هو أحد العناوين التي يمكن أن يتعلق بها محتوى كلية الهندسة الكهربائية وعلوم الحاسوب؟

<p>أساسيات البرمجة (B)</p> Signup and view all the answers

من هو الوصف الأكثر دقة لأساتذة كلية الهندسة الكهربائية وعلوم الحاسوب؟

<p>متخصصون في الهندسة الكهربائية وعلوم الحاسوب (A)</p> Signup and view all the answers

ما هي الفقرة الأكثر ارتباطًا بتخصصات كلية الهندسة الكهربائية وعلوم الحاسوب؟

<p>تطوير البرمجيات (C)</p> Signup and view all the answers

ما هو التركيز الرئيسي الذي يتم تدريسه في كلية الهندسة الكهربائية وعلوم الحاسوب؟

<p>الهندسة الكهربائية وعلوم الحاسوب (C)</p> Signup and view all the answers

ما هو الغرض من استخدام دالة malloc في البرمجة؟

<p>لطلب مساحة من الذاكرة من النظام (A)</p> Signup and view all the answers

أي مكتبة يجب تضمينها لاستخدام دالة malloc؟

<p>stdlib.h (A)</p> Signup and view all the answers

ما الذي يجب عليك فعله بعد استخدام malloc لتجنب تسرب الذاكرة?

<p>تحرير الذاكرة باستخدام free (D)</p> Signup and view all the answers

ماذا يحدث إذا طلبت ذاكرة باستخدام malloc ولم تستطع النظام تلبية الطلب؟

<p>سوف تُعيد malloc قيمة NULL (C)</p> Signup and view all the answers

ما هو النوع الذي يعود به malloc عند الناجح في تخصيص الذاكرة؟

<p>void* (A)</p> Signup and view all the answers

ما هي وظيفة دالة malloc الموضحة في المحتوى؟

<p>تخصيص كمية من الذاكرة (C)</p> Signup and view all the answers

ما الذي يميز الآرایهات الديناميكية عن الآرایهات الثابتة؟

<p>يتم تحديد طولها أثناء وقت التشغيل (B)</p> Signup and view all the answers

ما هي صيغة استخدام دالة malloc كما هو موضح في المحتوى؟

<p>pointer = (type)malloc(number*sizeof(type)); (A)</p> Signup and view all the answers

متى يتم تحديد الطول الفعلي للآرایه الديناميكية؟

<p>أثناء تشغيل البرنامج (D)</p> Signup and view all the answers

ما هو الغرض من استخدام دالة realloc كما هو موضح في المحتوى؟

<p>زيادة كمية الذاكرة المحجوزة (A)</p> Signup and view all the answers

أي من العبارات التالية صحيحة حول الآرایهات الديناميكية؟

<p>يمكن تغيير حجمها في أي وقت أثناء التنفيذ (A)</p> Signup and view all the answers

ما المعلمة التي تحتاجها دالة malloc لتحديد حجم الذاكرة المطلوبة؟

<p>عدد العناصر وحجم العنصر (C)</p> Signup and view all the answers

ما هي الخصائص الأساسية للأرايا الثابتة؟

<p>يجب تحديد طولها برقم ثابت عند إنشائها (D)</p> Signup and view all the answers

أي من العبارات يعكس فكرة الآرایهات الديناميكية بشكل صحيح؟

<p>تسمح بتعديل الطول حسب الحاجة (D)</p> Signup and view all the answers

ما النتيجة المحتملة عند استخدام malloc دون تحديد حجم مناسب؟

<p>حدوث تسرب في الذاكرة (B)</p> Signup and view all the answers

ما الفرق بين الأرايا الثابتة والأرايا الديناميكية؟

<p>الأرايا الديناميكية يمكن أن تتغير طولها أثناء التشغيل (A)</p> Signup and view all the answers

لماذا تعتبر الآرایهات الديناميكية مفيدة في البرمجة؟

<p>لأنها تقدم مرونة في إدارة الذاكرة (B)</p> Signup and view all the answers

ما الذي يحدث إذا حاولت إضافة عنصر إلى مصفوفة ثابتة بعد إنشائها؟

<p>ستظهر رسالة خطأ (A)</p> Signup and view all the answers

أي من التالي يعتبر تطبيقًا شائعًا للأرايا الثابتة؟

<p>تخزين قائمة الأسماء الثابتة (D)</p> Signup and view all the answers

ما الذي يعنيه مصطلح 'الأرايا الديناميكية'؟

<p>يمكن تغيير طولها أثناء مباشرة البرنامج (D)</p> Signup and view all the answers

Flashcards

مبانی کامپیوتر و برنامه نویسی

اسم واحد درسی که به مباحث پایه کامپیوتر و برنامه نویسی می پردازد.

دانشکده مهندسی برق و کامپیوتر

دانشکده ای در دانشگاه تهران که به آموزش علوم مهندسی برق و کامپیوتر می پردازد.

دانشگاه تهران

دانشگاه تهران یک دانشگاه بزرگ و معتبر در ایران است.

دانشکده

بخش یا گروهی از دانشجوها که در کنار هم در یک رشته درس می خواندن.

Signup and view all the flashcards

اساتید

معلمی که به دانشجوها درس می دهد.

Signup and view all the flashcards

آرایه پویا

نوعی از آرایه که طول آن در هنگام کامپایل مشخص نیست و در زمان اجرا تعیین می شود.

Signup and view all the flashcards

طول آرایه پویا

مقدار حافظه ای که برای ذخیره سازی اطلاعات در یک آرایه پویا کنار گذاشته شده است.

Signup and view all the flashcards

الْنِّصْفُ الأَوَّلُ

نصف العام الدراسي الذي يبدأ في الخريف وينتهي في الشتاء.

Signup and view all the flashcards

دَكْتُور مُرَادِيّ

الْبُرُوفِيسُورُ مُرَادِيّ

Signup and view all the flashcards

دَكْتُور هَاشِمِيّ

الْبُرُوفِيسُورُ هَاشِمِيّ

Signup and view all the flashcards

الْأَرَائِئُ الْحَيَّةُ

مُجْمُوعَةٌ مِنَ الْأَشْيَاءِ تَحْتَوِي عَلَى وَضْعِيَةٍ مُشْتَرَكَة.

Signup and view all the flashcards

١٤٠٢-١٤٠٣

الْعَامُ الْدِرَاسِيّ حَالِيًّا هُوَ ١٤٠٢-١٤٠٣.

Signup and view all the flashcards

آرایه ایستا

نوعی از آرایه که طول آن ثابت است و در زمان تعریف آرایه تعیین می شود.

Signup and view all the flashcards

طول آرایه

در آرایه های ایستا طول آرایه باید در زمان تعریف آرایه مشخص شود.

Signup and view all the flashcards

تغییر طول آرایه (پویا)

در آرایه های پویا می توانیم بعد از تعریف آرایه نیز طول آن را تغییر دهیم.

Signup and view all the flashcards

انواع آرایه

آرایه های ایستا و پویا دو نوع اصلی از آرایه ها در برنامه نویسی هستند.

Signup and view all the flashcards

تخصيص حافظه ديناميكي

تخصيص حافظه به صورت ديناميكي به برنامه ها، بدون نياز به مشخص كردن اندازه دقيق حافظه در زمان كامپايل.

Signup and view all the flashcards

تابع ‪malloc‬

تابعي از كتابخانه ‪stdlib.h‬ كه به برنامه ها اجازه مي دهد حافظه را از سيستم عامل درخواست كنند.

Signup and view all the flashcards

درخواست حافظه از سيستم عامل

استفاده از تابع ‪malloc‬ براي تخصيص حافظه مورد نياز به برنامه.

Signup and view all the flashcards

اندازه حافظه

مقدار حافظه اي كه ‪malloc‬ به برنامه اختصاص مي دهد.

Signup and view all the flashcards

نشانه گر به حافظه اختصاص داده شده

نشانه گر به حافظه اي كه ‪malloc‬ به برنامه اختصاص داده است.

Signup and view all the flashcards

malloc()

تابعی برای تخصیص حافظه در heap. این تابع مقدار مشخصی از حافظه را از heap گرفته و آن را در اختیار شما قرار می‌دهد. نحوه استفاده: pointer = (data_type*) malloc(number * sizeof(data_type)) در اینجا pointer نشان دهنده آدرس حافظه تخصیص داده شده است.

Signup and view all the flashcards

realloc()

تخصیص مجدد حافظه برای pointer . اگر pointer قبلا حافظه تخصیص داده شده را نشان می دهد، realloc() حافظه تخصیص داده شده را به اندازه جدید تغییر می دهد و آدرس جدید pointer را برمی‌گرداند. نحوه استفاده: pointer = (data_type *) realloc(pointer, new_size * sizeof(data_type)) در اینجا new_size اندازه جدید حافظه مورد نیاز است.

Signup and view all the flashcards

heap

حافظه‌ای دینامیک که به برنامه‌ها اجازه می‌دهد تا حافظه را در زمان اجرا (runtime) تخصیص و آزادسازی کنند.

Signup and view all the flashcards

sizeof()

اندازه ی واحد داده (byte) که در هر بار تخصیص حافظه با استفاده از malloc یا realloc استفاده می شود

Signup and view all the flashcards

Study Notes

آرایه‌های پویا

  • آرایه‌های پویا: طول این آرایه‌ها در زمان کامپایل مشخص نیست و در زمان اجرا تعیین می‌شود، این طول را می‌توان بعداً تغییر داد. متفاوت با آرایه‌های ایستا که طولشان ثابت است.

دستور تخصیص حافظه (malloc)

  • تابع malloc از کتابخانه stdlib.h استفاده می‌شود.
  • درخواست می‌کند که سیستم عامل مقدار مشخصی حافظه در بخش heap اختصاص دهد.
  • استفاده از آن: <type>* pointer = (<type>*)malloc(number*sizeof(<type>));
    • type: نوع داده‌ی آرایه.
    • number: طول آرایه.
  • دقت‌ها:
    • آرگومان malloc مقدار حافظه مورد نیاز را به بایت می‌دهد.
    • sizeof عملکری برای محاسبه‌ی اندازه‌ی هر نوع داده به بایت است. بهتر است از sizeof استفاده شود، زیرا اندازه‌ی نوع داده (type) در سیستم‌های مختلف ممکن است متفاوت باشد .
    • مقدار برگشتی تابع malloc در صورت موفقیت آمیز بودن تخصیص حافظه، یک نشانگر به ابتدای آرایه است. در غیر این صورت NULL است.
    • ضروری است که پس از استفاده از malloc، بررسی شود که آیا مقدار برگشتی NULL است یا خیر. در صورت NULL بودن، باید پیام خطا نمایش داده شده و برنامه متوقف شود.
    • مقدار برگشتی از نوع void است، لذا باید به نوع مورد نظر تبدیل شود (cast) .
  • مثال: int* dynamic_arr = (int*) malloc (arr_size * sizeof(int));

تابع calloc

  • یکی دیگر از راه‌های ایجاد آرایه‌های پویا.
  • اطلاعات بیشتر را می‌توانید در لینک‌ها یا منابع مشابه بیابید.

آزاد کردن حافظه (free)

  • بعد از تخصیص حافظه توسط malloc یا calloc، حتماٌ آن را با تابع free آزاد کنید.
  • مثال: free(dynamic_arr);

تفاوت با آرایه‌های ایستا

  • در استفاده از آرایه‌های پویا، به همان روش آرایه‌های ایستا کار می‌کنند، به جز اینکه طول آرایه در زمان اجرا تعیین می‌شود.

تابع realloc

  • برای تغییر مقدار حافظه‌ی قبلاً اختصاص‌داده شده توسط malloc یا calloc استفاده می‌شود.
  • تعریف تابع: <type>* pointer = (<type>*) realloc(pointer, number*sizeof(<type>));
  • pointer: نشانگر به حافظه قبلی.
  • number: اندازه جدید.

مثال‌ها و راهنمایی‌ها

  • کدهای مثال ارائه شده برای درک بهتر مفهوم آرایه‌های پویا، و استفاده از توابع مانند malloc, calloc, realloc و free و نحوه‌ی استفاده از آن‌ها همراه با دستورات و بررسی شرایط (مانند NULL بودن). این بخش شامل قطعات کد کامپایل شده و اجراشونده است که به درک بهتر دانشجو کمک می‌کند.

آرایه‌های دو بعدی پویا

  • آرایه‌های دو بعدی پویا: ساختار آرایه‌ای از آرایه‌های یک بعدی.
  • تشریح روش ساخت آرایه‌های دو بعدی پویا در کدهای مثال.

Type Casting

  • تبدیل نوع داده‌ها در برنامه‌نویسی.
  • بررسی مثال و پرسش‌هایی در مورد Type Casting.

خطرات عدم آزادسازی حافظه

  • ضرورت آزاد سازی حافظه‌های اختصاص داده شده در پایان.
  • بررسی مشکلات و راه حل‌ها در صورت عدم آزادسازی حافظه.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Arrays and Pointers in C
10 questions

Arrays and Pointers in C

OutstandingAntigorite3279 avatar
OutstandingAntigorite3279
Tableaux statiques et dynamiques en C++
21 questions
Use Quizgecko on...
Browser
Browser