مشاهده نسخه کامل
: در cpp آيا مي توان يك مقدار از كاربر گرفت و يك آرايه به آن اندازه ساخت ؟
star_5060
14-08-2007, 00:12
در cpp آيا مي توان يك مقدار از كاربر گرفت و يك آرايه به آن اندازه ساخت ؟
يعني مثلا كاربر عدد 5 رو وارد مي كنه
و ما يك آرايه 5 عضوي درست كنيم ؟؟؟:20:
سلام
بله، بدون شک میتوانید، با دستور new
چند وقتی است ++C کار نکرده ام و امیدوارم سینتکس زیر صحیح باشد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
hadi_joulaee
14-08-2007, 10:53
همیشه برای allocate کردن یه آرایه باید یه اشاره گر از همون نوع به آرایه اختصاص بدی.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه سوالی داشتی بپرس حتما بچه های فاروم بهت کمک میکنن.
:46::31::10:
hadi_joulaee
14-08-2007, 11:00
فرم کلی تخصیص حافظه پویا به این صورته:
hadi_joulaee
14-08-2007, 11:01
فرم کلی تخصیص حافظه پویا به این صورته:
;[طول آرایه] نوع new =اشاره گر به ابتدای آرایه
farinazf
23-08-2007, 20:17
تا اونجايي که من ميدونم توي cنميشه چنين کاري کرد يعني مقدار سايز آرايه بايد موقع کامپايل و قبل از اجرا مشخص باشه ...
rezapazahr
24-08-2007, 03:05
در cpp آيا مي توان يك مقدار از كاربر گرفت و يك آرايه به آن اندازه ساخت ؟
يعني مثلا كاربر عدد 5 رو وارد مي كنه
و ما يك آرايه 5 عضوي درست كنيم ؟؟؟:20:
سلام
چرا كه نميشه؟
با تخصيص حافظه پويا(به كارگيري حافظه در حين براجراي برنامه)ميتونيد اينكار رو انجام بديد
فرم كلي اينكار رو هم آقاي hadi_joulaee بيان كرده اند.
البته جسارتا در ادامه توضيحات hadi_joulaee جان اينو اضافه ميكنم كه در انتهاي كار با آرايه عمل free كردن مقدار فظاي اختصاص يافته رو حتما انجام بديد تا اصطلاحا حافظه اختصاص يافته نشط نكند.
موفق باشيد
يا علي
ali zi zeperto
24-08-2007, 13:45
آقا منم تا اونجایی که یادم میاد با c که نمیشد یه همچین کاری کرد ولی با c++ رو نمی دونم.:6:
hadi_joulaee
24-08-2007, 20:46
در زبان سی با دستور زیر میشه:
مثلا برای آرایه ای از نوع int و طول n
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و برای بازگرداندن حافظه heap به سیستم از تابع free به فرم زیر استفاده میشه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
hadi_joulaee
24-08-2007, 20:50
اگه زبان c قادر به یه همچین کار ساده ای نباشه دیگه اسمشو نمیشه گذاشت زبان برنامه نویسی!
sherlockholmz
10-11-2007, 11:20
ببخشيد من متوجه نشدم، در c طول آرايه بايد مشخص باشد .البته يك كلكهائي مي شه زد(مثل استفاده از
define # و...) در ضمن هر برنامه ائي يك سري خصوصيات داردو نمي توان گفت چون كار مارا راه نمي اندازد ضعيف است.
hadi_joulaee
11-11-2007, 11:14
ببخشيد من متوجه نشدم، در c طول آرايه بايد مشخص باشد .البته يك كلكهائي مي شه زد(مثل استفاده از
define # و...) در ضمن هر برنامه ائي يك سري خصوصيات داردو نمي توان گفت چون كار مارا راه نمي اندازد ضعيف است.
بله در بیشتر زبان های بر نامه نویسی باید طول آرایه مشخص باشه ولی میتونی با استفاده از تخصیص حافظه پویا یه آرایه با طول متغیر بسازی
در ضمن اگه یه زبون برنامه نویسی از یه همچین چیزی پشتیبانی نکنه باید بگیم قویه؟
یه فرقی باید بین یه زبون مثل بیسیک با سی یا زبون دیگه باشه؟ مگه نه!
sherlockholmz
11-11-2007, 12:53
البته ميبخشيد ولي به زعم من تخصيص حافظه پويا و آرايه با طول متغير دو مقوله مجزا هستند.شايد بتوان مشكل داشتن يك آرايه متغير را با تخصيص حافظه حل كرد ليكن آيا اين محل خصوصيات يك آرايه را دارد؟
با استفاده از پوينترها كمبودهاي آرايه جبران ميگردد ليكن فكر مي كنم منظور STAR 5060 مطلقا" آرايه (با تمام خصوصيات منحصر به فردش) با طول متغير بود ،كه چنين چيزي در c وجود ندارد.
سلام
با اجازه دوستان.
در مورد "تخصیص حافظه پویا" و "تخصیص آرایه پویا" اگر درست متوجه شده باشم، شما معتقید احتمالاً فرق دارند.
ولی در واقع فرقی با هم ندارد، مخصوصاً در ++C چون خود متغییر معرف آرایه در ++C یک اشاره گری به نقطه اول آرایه در حافظه است و شما به راحتی با یک تبدیل قالب ریزی کم خرج با کمک پرانتز و نوع درخواستی میتوانید وجحه دیداری "آرایه پویا" را به "حافظه پویا" تغییر دهید.
یک چیزی شبیه دستور union که یک محل مشترک حافظهع را با دیدهای مختلف عرضه میکند، ان هم همان است، در اصل تخصیص آرایه، حافظه پویا میگیرد و اشاره گر شروع را تنظیم میکند.
امیدوارم اصل سوالتان را درست متوجه شده باشم.
ali zi zeperto
12-11-2007, 13:07
اگر شما یه نگاهی به نحوه استفاده از آرایه و استفاده از یه ناحیه حافظه بندازید متوجه فرقشون می شید.آرایه با یه ناحیه حافظه هر دو شون ناحیه ای از حافظه اند ام این کجا و اون کجا.malloc یه تابع است که باید header file مخصوص خودش رو ابتدای برنامه قرار بدین.malloc ممکنه که نتونه ناحیه مورد نیاز شما رو از حافظه تخصیص بده. :6:
masterhe3ar
21-08-2012, 19:39
آقایون ازتون خواهش میکنم کمکم کنید،من فردا تحویل پروژه دارم نمیدونم چیکار کنم
کسی هست بتونه پروژه زیرو به هر زبانی که شده واسم بنویسه؟ تورو خدا کمکم کنید
برنامه ای بنویسید که عناصر استک آ با سایز 10 از ورودی دریافت کند سپس با استفاده ار حداقل ساختمان داده اضافی
عناصر استک آ را وارد استک خالی بی کند
به نحوی که ترتیب عناصر در بی همان ترتیب در آ باشد
در دو حالت
الف:
جهت پیاده سازی ساخمان داده های مورد نیاز از آرایه استفاده کنید
ب:
از لیست های پیوندی
اگه کسی تونست واسم میل کنه یا خبرم بده اینم ایمیلم
leila_falah@yahoo.com
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.