Memmove() C اور C++ میں

Memmove C Awr C My



آج، ہم C اور C++ زبان کے ایک اہم فنکشن کو سیکھنے جا رہے ہیں جو کہ memmove() فنکشن ہے۔ لیکن اس سے پہلے، آئیے C اور C++ زبانوں کی بنیادی باتوں پر ایک سرسری نظر ڈالتے ہیں۔ ہم اس بات پر بھی بات کریں گے کہ C/C++ دونوں زبانوں میں کون سے فنکشنز ہیں۔

سی پروگرامنگ لینگویج تمام مقاصد کے لیے آسان اور کافی موثر ہے۔ ونڈوز OS، ڈیٹا بیس، انٹرپریٹرز، اور دیگر ٹولز جیسے سافٹ ویئر کا نفاذ اس کے ساتھ ممکن ہے۔ سی کوڈنگ سیکھنے کے لیے ابتدائی افراد کے لیے ایک بہترین زبان ہے۔ اسی لیے سی پروگرامنگ کو مادری زبان کے نام سے جانا جاتا ہے کیونکہ یہ کمپیوٹر کی دیگر تمام زبانوں کی بنیاد کا کام کرتی ہے۔ C++ پروگرامنگ زبان کی بنیاد آبجیکٹ اورینٹڈ پروگرامنگ (OOP) کے نظریات پر مبنی ہے۔ صارف پروگرام کے اصولوں کو آسانی سے تیار اور سمجھ سکتا ہے کیونکہ C++ کی ساخت واضح ہے۔ C\C++ پروگرامنگ لینگویج متعدد افعال کو انجام دینے اور متغیر کو ایک قسم سے دوسری قسم میں تبدیل کرنے میں غیر معمولی طور پر ورسٹائل ہے۔ memmove() فنکشن C/C++ کے افعال میں سے ایک ہے۔







memmove() فنکشن میموری بلاک کے مشمولات سے بیک وقت 'num' بائٹس کو منتقل کرتا ہے جو منبع کے ذریعہ منزل کے ذریعہ اشارہ کردہ مقام کی طرف اشارہ کرتا ہے۔ memmove() فنکشن صرف اس وقت فائدہ مند ہوتا ہے جب ماخذ اور منزل آبجیکٹ اوورلیپ ہو جائیں اور غیر متعینہ رویے کو ہونے سے روک دیں۔ memmove() فنکشن کے بارے میں مزید جاننے کے لیے، آئیے گہرائی میں کھودیں اور دیکھیں کہ memmove() فنکشن میں نحو اور مثالوں کو کیسے نافذ کیا جائے۔



نحو:

یہاں ایک ہی تحریری انداز اور C اور C++ دونوں زبانوں کے لیے memmove() فنکشن کا نفاذ ہے۔ سب سے پہلے، ہم 'void' کی ورڈ لکھتے ہیں جس کا مطلب ہے کہ اگر فنکشن کوئی ویلیو واپس نہیں کرتا ہے، تو ہم اس فنکشن کا نام لکھتے ہیں جسے ہم لاگو کرنا چاہتے ہیں جو memmove() فنکشن ہے۔ فنکشن بریکٹ میں، ہم منزل لکھتے ہیں تاکہ ہم 'void' کلیدی لفظ کے ساتھ 'num' بائٹس رکھ سکیں۔ پھر، ہم سورس لوکیشن لکھتے ہیں جہاں سے ہمیں 'num' بائٹس ملتے ہیں۔







پیرامیٹرز:

ہاتھ: اسٹوریج کے مقام کا پتہ جس میں ڈیٹا کاپی کیا گیا ہے۔

src: اسٹوریج کے مقام کا پتہ جہاں سے ڈیٹا کاپی کیا گیا ہے۔



شمار: ماخذ سے منزل تک کاپی کرنے کے لیے ڈیٹا کی مقدار۔

واپسی کی قیمت:

بدلے میں، ہمیں ٹارگٹ میموری ایریا کا پتہ ملتا ہے۔ Dest کو memmove() فنکشن کے ذریعے واپس کیا جاتا ہے۔

مثال 1: C میں Memmove() فنکشن کا نفاذ

آئیے C زبان کی اپنی پہلی اور سادہ مثال کو لاگو کرنا شروع کریں۔ لکھنا شروع کرنے کے لیے، ہمیں سب سے پہلے ایک سی کمپائلر کی ضرورت ہے تاکہ ہم پروگرام لکھ سکیں اور اس پر عمل کر سکیں۔ اس کے لیے سی کمپائلر کھولیں اور پروگرام کو لاگو کرنا شروع کریں۔

# شامل کریں
#include

اہم int ( )
{
چار ch1 [ ] = { 'ایل' , 'میں' , 'این' , 'میں' , 'ایکس' } ;

int length = sizeof ( ch1 ) / کا سائز ( ch1 [ 0 ] ) ;

printf ( 'memmove() فنکشن کو لاگو کرنے سے پہلے: ' ) ;
کے لیے ( int میں = 0 ; میں < لمبائی i++ )
{
printf ( '%c' ، ch1 [ میں ] ) ;
}

چار * ch2 = اور ch1 [ دو ] ;
memmove ( ch2، ch1، sizeof ( چار ) * دو ) ;

printf ( ' \n \n memmove() فنکشن لگانے کے بعد: ' ) ;

کے لیے ( int میں = 0 ; میں < 5 ; i++ )
{
printf ( '%c' ، ch1 [ میں ] ) ;
}
واپسی 0 ;

}


ہم ہمیشہ کمپائلر شروع کرنے کے بعد بنیادی پروگرام ماڈیولز کو شامل کرکے شروع کرتے ہیں۔ یہ ماڈیول بنڈل C زبان کے ماڈیولز ہیں۔ ہمیں صرف ان ماڈیولز کو شامل کرنے کے لیے کوڈ کی ایک لائن ٹائپ کرنے کی ضرورت ہے، جیسا کہ ماڈیول کی تعمیر کے لیے کوڈ کی درجنوں لائنوں کے برخلاف۔ '#' اشارے مترجم کو پروگرام میں ماڈیول شامل کرنے کے لیے 'شامل' کلیدی لفظ استعمال کرنے سے پہلے ماڈیول لوڈ کرنے کے لیے مطلع کرتا ہے۔ 'stdio.h' ماڈیول کا مطلب ہے کہ مرتب کرنے والا صارف سے ڈیٹا کو قبول کرتا ہے اور اسے صارف کو دکھاتا ہے۔ پروگرام کا دوسرا ماڈیول '#include ' ہے تاکہ ہم موجودہ پروگرام میں سٹرنگ سے متعلقہ فنکشن استعمال کر سکیں۔

پھر، ہم main() فنکشن شروع کرتے ہیں تاکہ ہم کوڈ کی اصل لائن لکھ سکیں جسے ہم پروگرام میں نافذ کرنا چاہتے ہیں۔ لائن 6 میں، ہم قسم کے کریکٹر کے کریکٹر اری نام 'ch1' کا اعلان کرتے ہیں۔ پھر، ہم اس کے لیے ایک کریکٹر ویلیو تفویض کرتے ہیں۔ اس کے بعد، ہم 'ch1' کی لمبائی کا حساب لگاتے ہیں اور 'for loop' کا استعمال کرتے ہوئے ان پٹ اری 'ch1' پرنٹ کرتے ہیں۔

اس کے بعد، ہم ایک قسم کے کریکٹر کے 'ch2' ارے کی طرف پوائنٹر کا اعلان کرتے ہیں اور 'ch1' ارے کا پتہ 'ch2' سرنی کو تفویض کرتے ہیں۔ پھر، ہم اسے printf() اسٹیٹمنٹ کا استعمال کرکے پرنٹ کرتے ہیں۔ آئیے پچھلی مثال کا آؤٹ پٹ دیکھتے ہیں:

مثال 2: C++ میں Memmove() فنکشن کا نفاذ

یہاں ایک بنیادی مثال ہے جو ظاہر کرتی ہے کہ میموو() فنکشن C++ زبان میں کیسے کام کرتا ہے۔ لکھنا شروع کرنے کے لیے، ہمیں سب سے پہلے C++ IDE کی ضرورت ہے تاکہ ہم پروگرام لکھ سکیں اور اس پر عمل کر سکیں۔ اس کے لیے C++ کمپائلر کھولیں اور پروگرام کو لاگو کرنا شروع کریں۔

کمپائلر کو کھولنے کے بعد، ہم ہمیشہ ہیڈر فائلوں کو شامل کرکے شروع کرتے ہیں جو پروگراموں کو چلانے کے لیے C++ پروگرامنگ زبان کے لیے ضروری ہیں۔ پروگرام کو بنانے اور memmove() طریقہ استعمال کرنے کے لیے، ہم سب سے پہلے دو بنیادی ہیڈر فائلز - 'iostream' اور 'cstring' کو شامل کرتے ہیں۔ C++ صفوں اور تاروں کے ساتھ کام کرنے کے کئی طریقے فراہم کرتا ہے۔ یہ فنکشنز استعمال کے لیے اس وقت دستیاب ہوتے ہیں جب ہیڈر فائل کو کسی پروگرام میں '#include ' ہیڈر فائل کے ساتھ شامل کیا جاتا ہے جس کا استعمال ماخذ سے منزل تک ڈیٹا کی مخصوص تعداد میں بائٹس کاپی کرنے کے لیے کیا جاتا ہے۔ ہیڈر فائل '#include '  کو صارف کے ڈیٹا کے ان پٹ اور آؤٹ پٹ دونوں کے لیے استعمال کیا جاتا ہے۔ پھر، ہم C++ پروگرامنگ زبان کے معیاری نحو کو استعمال کرنے کے لیے اپنے کوڈ میں معیاری 'نیم اسپیس std' کا استعمال کرتے ہیں تاکہ ہم پورے پروگرام میں اشیاء، طریقوں اور پیرامیٹرز کو ایک ہی دائرہ کار کا حوالہ دینے سے روک سکیں۔

# شامل کریں
#include
نام کی جگہ کا استعمال کرتے ہوئے std؛

اہم int ( )
{
char src [ پچاس ] = '1234567890' ;
چار منزل [ پچاس ] = '0987654321' ;

cout << 'منزل پر میم منتقل کرنے سے پہلے:' << شروع << endl
memmove ( dest, src, 6 ) ;
cout << 'میم کو لاگو کرنے کے بعد منزل پر جائیں:' << ہاتھ

واپسی 0 ;
}


ہم کوڈ کی اصل لائن پر عمل درآمد شروع کرنے کے لیے مین() فنکشن لکھنا شروع کرتے ہیں۔ لائن 7 میں، لمبائی 50 کی دو کریکٹر قسم کی صف ہے جسے 'src[50]' اور 'dest[50]' قرار دیا گیا ہے۔ ہم پیغام کو پرنٹ کرنے کے لیے 'cout' بیان کا استعمال کرتے ہیں، 'Memmove() کو منزل مقصود پر لاگو کرنے سے پہلے: '۔ پھر، ہم 'dest' صف کی قدر پرنٹ کرنے کے لیے 'dest' پیرامیٹر پاس کرتے ہیں۔ اس کے بعد، memmove() فنکشن کا اطلاق کریکٹر قسم کے متغیر پر ہوتا ہے جسے 'src[50]' اور 'dest[50]' قرار دیا جاتا ہے تاکہ اصل (src) سے ہدف (منزل) تک بائٹس کی مخصوص تعداد کو اوورلیپ کیا جا سکے۔ 'شمار' کی تعداد۔ یہ بائٹس کی تعداد کی نشاندہی کرتا ہے جو 'src' سے 'dest' میں کاپی کیے گئے ہیں۔ جیسا کہ آپ مندرجہ ذیل مثال میں دیکھ سکتے ہیں، ہم نے '6' شماری نمبر کا اعلان کیا ہے۔

اس کے بعد، ہم پیغام کو ظاہر کرنے کے لیے دوبارہ 'cout' اسٹیٹمنٹ استعمال کرتے ہیں، 'After Applying memmove() to Destination: '، اور 'کریکٹر' قسم کے متغیر 'dest' ارے کو پاس کرتے ہیں۔ پروگرام کو چلنے سے روکنے کے لیے، ہمیں پروگرام کے اختتام پر واپسی کا بیان استعمال کرنا چاہیے۔ اس کے بعد ہم 0 کو مرکزی فنکشن میں واپس کرتے ہیں، جس سے یہ ظاہر ہوتا ہے کہ پروگرام کامیابی کے ساتھ انجام پا گیا ہے اور اپنا مقصد حاصل کر لیا ہے۔

آپ memmove() طریقہ کے درج ذیل آؤٹ پٹ میں دیکھ سکتے ہیں کہ اگر اوور لیپنگ ہو، مثال کے طور پر، جب ابتدائی پوائنٹر حرف 6 پر جاتا ہے، تو پوائنٹر پرنٹ کرتا رہتا ہے اور درج ذیل حروف اوورلیپ ہو جاتے ہیں۔ یہ C++ کوڈ کا ٹکڑا چلایا گیا تھا اور نتائج درج ذیل تصویر میں دکھائے گئے ہیں:

نتیجہ

اس مضمون میں، ہم نے C اور C++ پروگرامنگ زبانوں میں memmove() فنکشن کے بارے میں سیکھا۔ ہم نے اس بارے میں بات کی کہ memmove() فنکشن C اور C++ کی مثال کے ذریعے کوڈ کی ہر لائن کی تفصیلی وضاحت کے ساتھ کیسے کام کرتا ہے۔ ہم امید کرتے ہیں کہ آپ کو یہ مضمون C اور C++ میں memmove() فنکشن کے بارے میں اپنے علم کو بڑھانے میں مددگار ثابت ہوگا۔