نمایش نتایج 1 تا 9 از 9

نام تاپیک: تخصیص حافظه

  1. #1

    Question تخصیص حافظه

    1- آیا آرایه ها هم با تخصیص حافظه یعنی
    int[] a=new int[10]

    مقدار می گیرند
    پس چرا برای کد زیر خطا گرفته می شه
     
    string[] a=new string[10];
    listBox1.Items.Add(a);


    ولی برای کد زیر خطا گرفته نمی شه؟
     
    string[] a=new string[10];
    messageBox.show(a);
    آخرین ویرایش به وسیله kamran_14 : چهارشنبه 27 اردیبهشت 1391 در 14:31 عصر

  2. #2

    نقل قول: تخصیص حافظه

    در
    string[] a = new string[10];
    تخصیص حافظه صورت میگیره ولی مقدار نمیگیره.
    اگر بنویسید

    string[] a = new string[10];
    listBox1.Items.Add(a[0]);

    خطا میگیره چون مقدار null هست.
    ولی اگر بنویسید
                listBox1.Items.Add(a);
    نوع آرایه رو به لیست اضافه میکنه نه مقدارشو.

    در
                MessageBox.Show(a);
    هم خطا به خاطر اینه که باید یک رشته رو به متد شو بفرستید نه یک آرایه را. اگر میخواهید محتویاتش رو نشون بدید باید طریق اندیس به هر عنصر از آرایه دسترسی پیدا کنید.

  3. #3
    کاربر دائمی آواتار فرید نجفلو
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تبریز
    پست
    1,189

    نقل قول: تخصیص حافظه

    سلام
    اگه بخوایدهمراه با تعریف مقادیر رو نیز اختصاص بدید می تونید به این صورت بنویسید

                string[] a ={ "1", "2", "3", "4" };
    listBox1.Items.AddRange(a);

  4. #4

    نقل قول: تخصیص حافظه

    ممنون از جوابی که برام نوشتید
    فقط نوع عددی اند که در هنگام تخصیص حافظه مقدار اولیه می گیرند؟مثلا:
    int[] a=new int[10]

  5. #5
    کاربر دائمی آواتار فرید نجفلو
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تبریز
    پست
    1,189

    نقل قول: تخصیص حافظه

    نقل قول نوشته شده توسط kamran_14 مشاهده تاپیک
    ممنون از جوابی که برام نوشتید
    فقط نوع عددی اند که در هنگام تخصیص حافظه مقدار اولیه می گیرند؟مثلا:
    int[] a=new int[10]
    سلام تفاوتی وجود نداره:
    int[] a ={ 0,1,2,3,4,5,6,7,8,9,10 };

  6. #6

    Question نقل قول: تخصیص حافظه

    برای اینکه آرایه ای از رشته ها تعریف کنیم . می نویسیم:
    string[] a=new string[500];

    اما چون فقط تخصیص حافظه صورت می گیره و مقداری به این 500 ارایه نسبت داده نمیشه ممکنه در بعضی قسمتهای برنامه به علت استفاده از ارایه ی a خطا بده (به خاطر نداشتن مقدار). اما من می خوام قبل از اینکه این اتفاق بیفته به تمام خونه های آرایه ی a مقدار اولیه نسبت بدم تا چنین مشکلی به وجود نیاد. من چطوری می تونم تمام خونه های این آرایه رو هنگام اعلان پر کنم؟آیا این کار شدنیه یا نه؟

  7. #7
    کاربر دائمی آواتار فرید نجفلو
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تبریز
    پست
    1,189

    نقل قول: تخصیص حافظه

    سلام
    به نظر من با new فکر نکنم به نتیجه برسید چون رشته ها از نوع ارجاعی هستن و کامپایلر سی شارپ تمام انواع ارجاعی رو (بدون استثنا) با null ست می کنه
    در مورد string هم چند لحظه پیش اینجا توضیحاتی دادم

  8. #8

    Question نقل قول: تخصیص حافظه

    این کد که تعریف یک آرایه ی رشته ای و دادن مقدار اولیه به آن است:
    string a=new string[] {"1","2","3","4"}

    با این نحوه ی تعریف چه فرقی داره؟
    string a={"1","2"."3","4"}

  9. #9
    کاربر دائمی آواتار فرید نجفلو
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تبریز
    پست
    1,189

    نقل قول: تخصیص حافظه

    نقل قول نوشته شده توسط kamran_14 مشاهده تاپیک
    این کد که تعریف یک آرایه ی رشته ای و دادن مقدار اولیه به آن است:
    string a=new string[] {"1","2","3","4"}

    با این نحوه ی تعریف چه فرقی داره؟
    string a={"1","2"."3","4"}
    سلام
    تو این مورد هیچ فرقی ندارن (البته اگه اون نقطه بین 2 و 3 رو کاما حساب کنیم )
    همون طور که که گفتم انواع اولیه(Primetive) نیازی به new ندارن ولی میشه استفاده کرد
    مخصوصا در مورد string استفاده از new مگر در موارد خواص انجام نمیشه و سازنده بدون پارامتر هم نداره
    بازم تاکید می کنم بهتره برای انواع اولیه (string,bool,int,...) بهتره از انتساب صریح (=) مثل کد دومتون استفاده کنید

تاپیک های مشابه

  1. الگوریتم های تخصیص حافظه در سیستم عامل
    نوشته شده توسط golrokh در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 21
    آخرین پست: دوشنبه 04 خرداد 1394, 13:16 عصر
  2. محدودیت تخصیص حافظه
    نوشته شده توسط greenway در بخش توسعه‌ی هسته‌ی سیستم عامل
    پاسخ: 4
    آخرین پست: جمعه 02 شهریور 1386, 10:44 صبح
  3. تخصیص حافظه
    نوشته شده توسط vahid80 در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: یک شنبه 07 اسفند 1384, 15:46 عصر
  4. تخصیص حافظه
    نوشته شده توسط ravanfar در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: چهارشنبه 24 تیر 1383, 07:40 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •