نحوه عملکرد _strdup - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

نحوه عملکرد _strdup

+2 امتیاز
سلام.

آیا با _strdup فقط باید رشته را duplicate کرد یا نه هر نوعی حافظه موجود را می تونیم duplicate کنیم ؟
سوال شده مرداد 23, 1393  بوسیله ی Mad (امتیاز 245)   10 35 47
خب واضحه این تابع تا اولین بایتی که صفر باشه کپی می‌کنه. پس برای هر حافظه‌ای خوب نیست.

1 پاسخ

+3 امتیاز
 
بهترین پاسخ
از اسم تابع که مخف string duplicate هست مشخصه که برای رشته بیشتر کاربرد داره .

کاری که می کنه اینه که تا رسیدن به کاراکتر null  حافظه رو کپی می کنه .

دقت کنید که با توجه به این که strdup برای کپی کردن ابتدا به اندازه مورد نیاز حافظه توسط malloc میگیره باید بعد از استفاده از این تابع از free هم بر روی مقدار برگشتی  استفاده کنید.
پاسخ داده شده مرداد 24, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد مرداد 24, 1393 بوسیله ی Ali Rahbar
خوب اگر حالا بخام اینو برای هر حافظه ای اشغال شده انجام بدم تابعی وجود داره؟
آره memcpy
...