મોલોક અને ન્યૂ વચ્ચેનો તફાવત

Anonim

Malloc vs New

એક કમ્પ્યુટર પ્રોગ્રામરની ભરતીમાં સૌથી સામાન્ય ઇન્ટરવ્યૂ પ્રશ્નો અરજદાર / કમ્પ્યુટર પ્રોગ્રામર માટે છે જેમાં malloc અને નવા વચ્ચે તફાવત સમજાવવા. મૉલૉક અને નવા બંને કમ્પ્યુટર ભાષાના ક્ષેત્રમાં રહે છે અને મોટેભાગે ડાયનેમિક મેમરી ફાળવણી માટે કમ્પ્યુટર પ્રોગ્રામરો દ્વારા ઉપયોગમાં લેવામાં આવે છે.

બન્ને વચ્ચેનું મૂળભૂત તફાવત એ છે કે મોલેક સી-ભાષામાં અસ્તિત્વ ધરાવે છે જ્યારે નવું C ++ ભાષાના વિશિષ્ટ લક્ષણ છે. મોલૉક એ એક કાર્ય પણ છે (જે, પ્રોગ્રામરો માટે, ચલાવવા માટે થોડો સમય લે છે) જ્યારે નવું ઑપરેટર પ્રોગ્રામ છે (જે એક્ઝેક્યુશન સમયને ઘટાડે છે). આ ઓપરેટર નવા તરફથી ફાયદો છે કારણ કે પ્રોગ્રામરો વાસ્તવિક સમયના પ્રોગ્રામિંગ કરવા માટે વાપરવા માટે સૌથી ઝડપી પદ્ધતિ પસંદ કરવાની જરૂર છે.

-2 ->

નવું ઑપરેટર કાર્ય પ્રકાર malloc વિપરીત પ્રકાર સુરક્ષિત છે

ફંક્શન મોલોક સી-લેંગ્વેજ માટે લાઇબ્રેરી ફંક્શન છે. તે બધી મેમરીને ફાળવે છે અને તેના પર નિર્દેશક પરત કરે છે. બીજી તરફ, ઓપરેટર નવી ભાષા-સ્તરનું બાંધકામ છે, અને તેનું કામ મેમરીને ફાળવવા અને યોગ્ય કન્સ્ટ્રકટરોને બોલાવીને ઑબ્જેક્ટને ઇન્સ્ટિટ કરવા છે. ઓપરેટર નવી ફંક્શન મોલૉકનો બીજો તફાવત એ છે કે મેલોકને ઘોષણા દરમિયાન ટાઇપકાસ્ટિંગની જરૂર છે, જ્યારે કે ભૂતકાળમાં નથી. આ ઉપરાંત, ફલન મૉલૉક મેમરીને સાફ કરવા માટે "ફ્રી" શબ્દનો ઉપયોગ કરે છે, જ્યારે સમાન હેતુ માટે "કાઢી નાંખો" ઓપરેટરમાં વપરાય છે.

બે પણ નિષ્ફળતા અને મેમરી થાક સાથે વ્યવહાર વિવિધ માર્ગો હોય છે. જો વિધેય malloc નિષ્ફળ જાય છે, તે એક નલ પોઇન્ટર સાથે પરત કરે છે. ઑપરેટર નવું નલ પોઇન્ટર આપે નહીં પરંતુ તેના બદલે અપવાદ ફેંકીને નિષ્ફળતા સૂચવે છે. આ ઑપરેટર માટે એક ફાયદો છે કારણ કે કમ્પ્યુટર પ્રોગ્રામરે પાછો પોઇન્ટર દર વખતે તે નવો ફોન કરતો નથી અથવા કમ્પ્યુટર પ્રોગ્રામરને આવા અપવાદ ગુમાવશે નહીં.

ફંક્શન મોલોક ઑબ્જેક્ટ (ઓબ્જેક્ટના કન્સ્ટ્રકટર તરીકે ઓળખાતું નથી) બનાવતું નથી પરંતુ ઓપરેટર નવા કરે છે. નવાનો બીજો લાભ એ છે કે ઑપરેટર ઓવરલોડ થઈ શકે છે જ્યારે કાર્ય malloc ન કરી શકે. ઑપરેટર નવાને ફાળવવાની ચોક્કસ વસ્તુઓની જરૂર છે, જ્યારે ફોલ્ટ મોલૉકને ફાળવવા માટે બાઈટની કુલ સંખ્યાને સ્પષ્ટ કરવાની જરૂર છે.

રિએલોકનો ઉપયોગ કરીને ફંક્શન મૉલૉકનો ઉપયોગ કરીને મેમરીને ફરીથી કદના અથવા પુનઃ ફાળવવામાં આવી શકે છે. જો કે, ઓપરેટર નવા આ કાર્ય કરી શકતા નથી અને તે ઓપરેટરના મુખ્ય ગેરફાયદામાંના એક તરીકે ગણે છે. ઓપરેટર નવી પર કાર્ય malloc અન્ય લાભ એ છે કે malloc ઝડપથી મેમરી જથ્થો વિસ્તૃત કરી શકે છે. આ હજુ પણ malloc અને realloc મદદથી છે. જ્યારે C ++ ભાષામાં સમાન પરિસ્થિતિ કરી રહ્યા હોય, ત્યારે પ્રોગ્રામરે ઓપરેટર નવી સાથે મેમરીનો એક નવો ભાગ બનાવવો પડશે. નવી મેમરીમાં ફેરફાર કરેલ કદ હોવો જોઈએ અને મૂળ બફરમાંથી ડેટા પર કૉપિ કરવામાં આવશે.કૉપિ પછી મૂળ બફર કાઢી નાખવું જોઈએ. આ પ્રોગ્રામર માટે ધીમા પ્રક્રિયા હોઈ શકે છે.

ફંક્શન મેલોક પર કાર્યરત નવી રીત છે, જ્યારે ફંક્શન રદબાતલ * * કરે છે. ઓવરલે લોડિંગ શક્ય છે ત્યાં ઑપરેટરની સરખામણીમાં કાર્ય મોલોક ઓવરલોડ થઈ શકતું નથી. ઓપરેટરનો બીજો લક્ષણ એ છે કે ફલક મૉલૉકની તુલનામાં ઓપરેટર સાથે ભૂલો કરવાના ઓછા તકો છે. પ્રોગ્રામરો માટે આને વત્તા ગણવામાં આવે છે, ખાસ કરીને જો તેઓ ઘણાં કોડ લખતા હોય અથવા સખત શેડ્યૂલ પર કોડ પર કામ કરતા હોય. ફંક્શન malloc અને ફ્રી C ++ માં ઉપયોગમાં લઈ શકાય છે, પરંતુ તે સીધી રીતે ઉપયોગ કરી શકાતી નથી. તે નવા ઉપયોગ અને તેના બદલે કાઢી નાંખવા સલાહ આપવામાં આવે છે.

સારાંશ:

1. મોલોક એક કાર્ય છે જ્યારે નવું ઓપરેટર છે.

2 નવી એ C ++ ભાષાના વિશિષ્ટ લક્ષણ છે જ્યારે malloc C- ભાષામાં વપરાય છે.

3 ઓપરેટર નવું "કાઢી નાંખો" સાથે અનુસરે છે જ્યારે કાર્ય મોલોક "મફત સાથે આવે છે. "

4. ફંક્શન મૉલૉક એ સી-લેંગ માટે લાઈબ્રેરી ફંક્શન છે જ્યારે ઓપરેટર નવી ભાષા-સ્તરની રચના C ++ ભાષાથી થાય છે.