Грешка: Инт се не може дереференцирати у Ц++

Greska Int Se Ne Moze Dereferencirati U C



Програмским језицима су потребне библиотеке, функције, синтакса и друге ствари када раде са њима. Дакле, постоји шанса да наши кодови садрже грешке. Програмирање у Ц++-у има много различитих типова грешака. Овде ћемо разговарати о грешци „инт се не може дереференцирати у Ц++“. Ова грешка се јавља када покушамо да користимо оператор дереференцирања „*“ са подацима целобројног типа „инт“ јер је „инт“ примитиван тип података. Не можемо дереференцирати „инт“ у Ц++ програмирању. Овде се грешка „инт не може дереференцирати у Ц++“ и њено решење ће бити детаљно истражено. Неки кодови су дати у овом водичу у којима ћемо видети како се ова грешка јавља и како се носити са овом врстом грешке у Ц++.

Пример 1: Дереференцирање Инт







У овом коду ћемо покушати да дереференцирамо „инт“ у Ц++. Сада једноставно укључујемо датотеку заглавља „иостреам“ да бисмо користили дефинисане функције. Испод овога користимо „простор имена стд“ и овде позивамо метод „маин()“. Затим декларишемо променљиву „ми_нум“ са типом података „инт“ и додељујемо „99“ овој променљивој.



Сада декларишемо „ми_валуе“ типа података „инт“ и иницијализујемо га са „*ми_нум“ што значи да покушавамо да дереференцирамо променљиву „ми_нум“ која је типа „инт“. Грешка се генерише у овој линији током компајлирања јер не можемо дереференцирати „инт“. Желимо да прикажемо вредност коју добијамо након дереференцирања инт, па постављамо „цоут“ у који смо додали променљиву „ми_валуе“.



Код 1:





#инцлуде<иостреам>
користећи простор имена стд;
инт маин ( ) {
инт мој_број = 99 ;
инт моја_вредност = * ми_нум;
цоут << 'Вредност коју добијамо кроз дереференцирање инт је: ' << моја_вредност << ендл;
повратак 0 ;
}

Излаз:



Овде можемо приметити да се никаква вредност не приказује и да се јавља грешка која каже да постоји неважећи аргумент типа унарног „*“. То значи да не можемо дереференцирати „инт“ у Ц++.

Решење 1: Без дереференцирања

Овде ћемо добити целобројну вредност директно без дереференцирања. Увозимо датотеку заглавља „иостреам“ пошто су неке дефиниције функција присутне. Затим откуцавамо „намеспаце стд“ заједно са „усинг“ кључном речи, а затим овде позивамо метод „маин()“. Сада иницијализујемо променљиву „ми_нум“ типа података „инт“ са вредношћу „99“.

Затим иницијализујемо другу променљиву са именом „ми_валуе“ и додељујемо јој променљиву „ми_нум“ која садржи цео број. Након овога, ову целобројну вредност добијамо директно без дереференцирања тако што ћемо „ми_валуе“ ставити у „цоут“. Ово добија и приказује целобројну вредност.

Код 1:

#инцлуде<иостреам>
користећи простор имена стд;
инт маин ( ) {
инт мој_број = 99 ;
инт ми_валуе = ми_нум;
цоут << 'Вредност коју добијамо без дереференцирања инт је: ' << моја_вредност << ендл;
повратак 0 ;
}

Излаз:

Овде се приказује целобројна вредност коју добијамо без дереференцирања у нашем Ц++ коду. Директно приступамо овој целобројној вредности и приказујемо је.

Решење 2: Дереференцирањем показивача

Датотека заглавља „иостреам“ садржи одређене дефиниције функција; увезли смо их. Затим, овде покрећемо функцију „маин()“ након што унесемо „намеспаце стд“ и „усинг“ кључну реч. Променљива „ми_нум“ типа података „инт“ је сада иницијализована са вредношћу „99“.

Након овога, иницијализујемо показивач „ми_птр“ и овом показивачу додељујемо адресу променљиве „ми_нум“. Испод овога, ми дереференцирамо показивач и додељујемо вредност коју добијемо кроз ово променљивој „ми_валуе“ док смо иницијализовали „ми_валуе“ са „*ми_птр“. Сада постављамо „цоут“ у који преносимо променљиву „ми_валуе“ да прикажемо целобројну вредност коју добијамо дереференцирањем показивача.

Код 2:

#инцлуде<иостреам>
користећи простор имена стд;
инт маин ( ) {
инт мој_број = 99 ;
инт * ми_птр = & ми_нум;
инт моја_вредност = * ми_птр;
цоут << 'Вредност инт коју добијамо дереференцирањем показивача је: ' << моја_вредност << ендл;
повратак 0 ;
}

Излаз:

Целобројна вредност коју добијамо након дереференцирања показивача у нашем коду је сада приказана овде. Дакле, ово је исправан начин за примену дереференцирања у Ц++.

Пример 2: Дереференцирање Инт

Хајде да покушамо да дереференцирамо „инт“ у Ц++ у овом коду. Да бисмо користили функције које су дефинисане у „иостреам“, само треба да укључимо датотеку заглавља „иостреам“. Овде користимо „простор имена стд“ и позивамо функцију „маин()“. Затим креирамо променљиву „а“ и дајемо јој тип података „инт“ заједно са вредношћу „75“.

Испод овога креирамо показивач под називом „невПоинтер“ и додељујемо адресу променљиве „а“ овом показивачу уз помоћ „&“. Затим иницијализујемо променљиву „нум“ испод са „*а“ што указује да покушавамо да дереференцирамо променљиву „а“ која је типа података „инт“. Пошто не можемо да дереференцирамо „инт“, грешка се сада производи на овој линији током компилације. Након овога, такође користимо „цоут“ у који додајемо променљиву „нум“.

Код 2:

#инцлуде <иостреам>
користећи простор имена стд;
инт маин ( ) {
инт а = 75 ;
инт * невПоинтер = & а;
инт број = * а;
цоут << 'Вредност дереференцирања инт је: ' << на једном << ендл;
повратак 0 ;
}

Излаз:

Овде можемо видети да нема приказане вредности и појављује се порука о грешци у којој се наводи „неважећи параметар типа унарног“*. Ово указује да се „инт“ не може дереференцирати у Ц++.

Решење 1: Без дереференцирања

Нећемо морати да вршимо дереференцирање да бисмо одмах добили целобројну вредност. Увозимо га пошто датотека заглавља „иостреам“ садржи одређене дефиниције функција. Функција „маин()“ се затим позива након што се унесу кључне речи „усинг“ и „намеспаце стд“. Променљива „а“ типа података „инт“ је сада иницијализована вредношћу „75“. Након тога убацујемо „а“ у „цоут“ да бисмо одмах добили ову целобројну вредност без дереференцирања. Ово преузима целобројну вредност и приказује је овде.

Код 1:

#инцлуде <иостреам>
користећи простор имена стд;
инт маин ( ) {
инт а = 75 ;
цоут << 'Вредност коју добијамо без дереференцирања је: ' << а << ендл;
повратак 0 ;
}

Излаз:

Овде је представљена целобројна вредност која се добија из нашег Ц++ кода без дереференцирања. Ова целобројна вредност је одмах доступна и приказана је овде.

Решење 2:

Увозимо датотеку заглавља „иостреам“ која садржи неке дефиниције функција. Овде уписујемо „намеспаце стд“ и „усинг“ кључну реч пре него што извршимо функцију „маин()“. Вредност „75“ је додељена променљивој „а“.

Затим декларишемо показивач под називом „мипоинтер“ и иницијализујемо га адресом променљиве „а“ на њему. Испод овога, ми дереференцирамо показивач и додељујемо вредност коју добијемо од овога променљивој „резултат“ док иницијализујемо „резултат“ са „*мипоинтер“. Након дереференцирања показивача, постављамо команду „цоут“ и прослеђујемо променљиву „резултат“ да прикажемо целобројну вредност.

Код 2:

#инцлуде <иостреам>
користећи простор имена стд;
инт маин ( ) {
инт а = 75 ;
инт * мипоинтер = & а;
инт резултат = * мипоинтер;
цоут << 'Вредност коју добијамо дереференцирањем показивача је: ' << резултат << ендл;
повратак 0 ;
}

Излаз:

Ово је права техника за примену дереференцирања у Ц++. Он приказује целобројну вредност коју смо добили након дереференцирања показивача уместо дереференцирања „инт“.

Закључак

Истражили смо да када покушамо да добијемо вредност дереференцирањем „инт“ у Ц++, појавиће се грешка „неважећи параметар типа унарног „*“ који има инт“, што значи да „инт не може бити дереференциран у Ц++“. Такође смо објаснили решење ове грешке. Користили смо код у којем су се појавиле грешке и кодове у којима смо дали решење те грешке у овом водичу.