ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 6 از 6
  1. #1
    2008/11/05
    161
    4

    تشخیص طول آرایه در C

    سلام.
    چطوری میشه طول یه آرایه رو در c یه دست آورد؟
    مثلا
    unsigned char text[]="Welcome"; i
  2. #2
    2009/08/11
    682
    80

    پاسخ : تشخیص طول آرایه در C

    با تابع strlen از هدر string.h میتونی طول رشته رو بدست بیاری.

    روش2 : (اگه احیانا به strlen دسترسی نداشتی!!)
    می تونی خودت یه حلقه بنویسی و یکی یکی کاراکتر های رو بخونی تا به کاراکتر تهی /0 برسی. این نشون دهنده پایان رشته.
    https://www.linkedin.com/in/mohammadhosseini69

    http://zakhar.blog.ir
  3. #3
    2005/11/18
    خوزستان-
    308
    31

    پاسخ : تشخیص طول آرایه در C

    سلام
    دستور sizeof()طول آرایه رو برمیگردونه
    یا علی

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  4. #4
    2008/09/02
    اصفهان
    1,897
    39

    پاسخ : تشخیص طول آرایه در C

    دستور sizeof همونطور که از اسمش پیداست حجم مورد رو برمیگردونه ولی تعداد رو نه. در اینجا چون حجم یک عنصر از آرایه 1 بایت هستش حجم با طول یکی شده وگرنه اگر داشته باشیم:


    int a[100]


    sizeof(a) روی سیستمهای 16 بیتی 200 و روی سیستمهای 32 بیتی 400 برمیگردونه. ایضا اگر برای آرایه های با طول ثابت بخوایین بایستی از ماکروی زیر استفاده کنین:


    #define dim(x) (sizeof(x)/sizeof((x)[0]))


    که همیشه در هر سیستمی dim(a) در مثال فوق مقدار 100 رو برمیگردونه.
  5. #5
    2009/10/21
    تهران
    2,517
    217

    پاسخ : تشخیص طول آرایه در C

    متاسفانه زبان C اگه آرایه از نوع رشته ای نباشه نمیتونه طول رو بده(شما هم نمیتونی بفهمی) در مورد رشته ها هم طول آرایه بدست نمیاد بلکه طول رشته بدست میاد که ممکنه از طول آرایه کمتر باشه. این مشکل c بود که محدوده ها رو نمیتونست کنترل بکنه و به همین دلیل بود که کلاس های آرایه بوجود اومد و باز هم به همین دلیله که موقع کار کردن با آرایه ها علاوه بر اسم آرایه(بعنوان آدرس شروع آرایه) طول اون هم به توابع ارسال میشد
  6. #6
    2008/09/02
    اصفهان
    1,897
    39

    پاسخ : تشخیص طول آرایه در C

    متاسفانه اشتباهی که شما کردین و بقیه هم میکنن اینه که این مشکل از C نیست. مشکل از تعبیر غلطیه که شما انتظار دارین کامپایلر C از کدی که شما مینویسین انجام بده. مثلا یکی از نمونه تعابیر غلط دیگه این بود که یکی میگفت آیا کامپایلر C باگ داره؟ و توضیح داده بود که اگه در یک switch آیتم default به صورت Default نوشته بشه کامپایلر هیچ ایرادی نمیگیره. دقیقا این مسئله هم هست. چون بر خلاف تصور عموم مردم switch در C یک ساختار ثابت نیست. بلکه تکه کدی هست که میتونه چندین و چند entry point داشته باشه. مسلما در هر بلوک کدی هم میشه label تعریف کرد که این Default هم یکی از اون label ها هست.

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

موضوعات مشابه

  1. آرایه خطی اسکنر & avr
    توسط 86332050 در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2016/03/08, 12:04
  2. |!!| سوالاتی در باب آرایه ها در CV
    توسط masoud9 در انجمن میکروکنترلرهای AVR
    پاسخ: 12
    آخرين نوشته: 2011/11/14, 05:05
  3. آرایه درکدویژن
    توسط زوار در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2010/12/31, 22:28
  4. آرایه در بس کام
    توسط John Lock در انجمن میکروکنترلرهای AVR
    پاسخ: 27
    آخرين نوشته: 2009/06/06, 14:59
  5. آرایه ها
    توسط fazel459 در انجمن C , C++ , C#
    پاسخ: 2
    آخرين نوشته: 2009/01/29, 05:22

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

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