آیا به malloc در C++ نیاز دارید؟
آیا به malloc در C++ نیاز دارید؟

تصویری: آیا به malloc در C++ نیاز دارید؟

تصویری: آیا به malloc در C++ نیاز دارید؟
تصویری: نحوه استفاده از malloc برای تخصیص پویا حافظه 2024, ممکن است
Anonim

شما استفاده کنید مالوک چه زمانی تو نیاز داری برای تخصیص اشیایی که باید فراتر از طول عمر اجرای بلوک فعلی (که در آن کپی در بازگشت وجود دارد خواهد شد گران نیز باشد)، یا اگر باید حافظه را تخصیص دهید بزرگتر از اندازه آن پشته (یعنی: یک آرایه پشته محلی 3 مگابایتی ایده بدی است).

همچنین، آیا شما نیاز به malloc در C++ دارید؟

تفاوت ساده است: مالوک حافظه را اختصاص می دهد، در حالی که new حافظه را اختصاص می دهد و سازنده شی را فراخوانی می کند شما در حال تخصیص حافظه برای. بنابراین، مگر اینکه شما محدود به C است، تو باید هرگز استفاده نکنید مالوک ، به خصوص هنگام برخورد با C++ اشیاء.

همچنین ممکن است سوال شود که منظور از malloc چیست؟ در C، تابع کتابخانه مالوک برای تخصیص یک بلوک از حافظه روی پشته استفاده می شود. برنامه از طریق یک اشاره گر به این بلوک حافظه دسترسی پیدا می کند مالوک برمی گرداند. هنگامی که دیگر به حافظه نیازی نیست، اشاره گر به حالت آزاد ارسال می شود که حافظه را اختصاص می دهد تا بتوان از آن برای مقاصد دیگر استفاده کرد.

به این ترتیب، آیا malloc در C++ وجود دارد؟

مالوک () عملکرد در C++ اختصاص می دهد آ بلوک حافظه بدون مقدار اولیه و بر می گرداند آ نشانگر خالی به را بایت اول از را بلوک حافظه اختصاص داده شده اگر را تخصیص موفقیت آمیز است. اگر را اندازه صفر است را مقدار بازگشتی بستگی به را اجرای را کتابخانه آی تی ممکن است باشد یا نباشد آ نشانگر تهی

چگونه می توان یک سازه را تغییر داد؟

برای آنچه می خواهید به دو مورد نیاز دارید مالوک () s. ساخت بردار *y = مالوک (اندازه *y)؛ /* به اشاره گر */ y->x = calloc(10, sizeof *y->x) توجه کنید. در خط اول، شما حافظه را برای یک شی Vector اختصاص می دهید. مالوک () یک اشاره گر را به حافظه اختصاص داده شده برمی گرداند، بنابراین y باید یک اشاره گر برداری باشد.