Advertisement
neogz

POK - Alokacija i dealokacija vjezba

Aug 25th, 2014
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. /*
  2.     a)  deklarišite pokazivač p1 na int
  3.     b)  alocirajte prostor pokazivaču p1 u dinamičkoj memoriji
  4.     c)  učitajte broj sa tastature u prethodno alocirani prostor
  5.     d)  inkrementirajte  prethodno  uneseni  broj  koristeći  pokazivač  p1  pomoću  operatora ++
  6.     e)  definišite  i  pozovite  funkciju  promjeni_predznak  čiji  će  formalni  parametar  biti pokazivač;
  7.         funkcija treba promijeniti predznak broju koji je korisnik unio u koraku c (funkcija  ne  smije  'pasti'  ako  joj  kao  aktuelni  parametar  koji  proslijedimo
  8.         pokazivač koji ne pokazuje nigdje, NULL-pokazivač)
  9.     f)  deklarirajte varijablu d i neka pokazivač pokazuje na varijablu d (Kojeg tipa mora biti varijabla d, da bi ovo bilo moguće?)
  10.     g)  dodijelite varijabli d neku vrijednost koristeći pokazivač p1
  11.     h)  alocirajte pokazivaču p1 novi memorijski prostor u dinamičkoj memoriji i dodijelite mu vrijednost koja je dvostruko veća od vrijednost d
  12.     i)  promijenite predznak varijabli d, koristeći funkciju promjeni_predznak
  13.     j)  dealocirajte memorijski prostor na koji pokazuje p1
  14.     k)  pozovite  funkciju  promjeni_predznak  i  proslijedite  joj  kao  aktuelni  parametar pokazivač p1 (uvjerite se da ste prethodni korak riješili u
  15.         potpunosti kako u ovom koraku ne biste imali problema)
  16. */
  17.  
  18. #include <iostream>
  19. using namespace std;
  20.  
  21. //e
  22. void promjeni_predznak(int * pok)
  23. {
  24.     if (pok == NULL) {
  25.         cout << "GRESKA!";  return;
  26.     }
  27.     *pok *= -1;
  28.  
  29. }
  30.  
  31. int main(){
  32.  
  33.     //a
  34.     int * p1 = NULL;
  35.  
  36.     //b
  37.     p1 = new int;
  38.  
  39.     //c
  40.     cout << "Unesite neki broj: ";
  41.     cin >> *p1;
  42.  
  43.     //d
  44.     (*p1)++;
  45.  
  46.     //e
  47.     promjeni_predznak(p1);
  48.  
  49.     //f
  50.     int d;
  51.     p1 = &d;
  52.  
  53.     //g
  54.     *p1 = 69;
  55.  
  56.     //h
  57.     p1 = new int;
  58.     *p1 = 2 * d;
  59.  
  60.     //i
  61.     promjeni_predznak(&d);
  62.  
  63.     //j
  64.     delete p1;
  65.     p1 = NULL;
  66.  
  67.     //k
  68.     promjeni_predznak(p1);
  69.  
  70.  
  71.     system("pause>null");
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement