HTML

Proghelp

Programozási tutorial-ok és feladat kidolgozások főleg Debreceni Egyetem Mérnök Informatikus hallgatóinak számára!

Friss topikok

Linkblog

Laborkártyák VI.

master994 2011.04.06. 14:00

1. kártya

#include <stdio.h>

int main (void)
{
   int a = 5;
   int& ar = a;   // ar referenciája az a-nak
   int& arr = ar;  // arr referenciája az ar-nak vagyis az a-nak
   ++arr;

   printf("a=%d\n", a);

   return 0;
}
/*
g++
Kimenet:
a=6
*/

 

2. kártya

#include <iostream>
#include <vector>
int main (int argc, char * argv[])
{
   std::vector <char> v(3);   // 3 elemű vektort létrehozésa

   v[0] = v[1] = v[2] = 'a';   // vektor elemeinek értéke 'a'

   std::cout << v[1] << std::endl; // vektor elemének kiírása

   return 0;
}
/*
g++
Kimenet:
a
*/
int main (int argc, char *argv[])
{
   Verem v (512);
   
   v.push('0');
   v.push('1');

   std::cout << v[1] << std::endl;
   std::cout << v[0] << std::endl;

   return 0;
}
/*
Nem merta v egy veremosztályból származtatjuk melynek nincs ilyen funkciója
*/

3. kártya

int main (int argc, char *argv[])
{
   Verem v (512);
   
   v.push('0');
   v.push('1');

   std::cout << v[1] << std::endl;
   std::cout << v[0] << std::endl;

   return 0;
}

char& operator[] (int i){
   return verem[i];
}

/*
Igen, mivel mostmár van függvényünk a címzésre
*/

4. kártya

#include <iostream>
#include <vector>

int* tomb(int meret){         // egy függvény mint létrehozó konstruktor

return new int[meret];
}

int main (int argc, char *argv[])
{
   int* t = tomb(10);      // létrehozunk ey 10 elemű tömböt

   t[6] = 42;

   std::cout << t[6] << std::endl;

   delete [] t;   

   return 0;
}
/*
g++
Kimenet:
42
*/
#include <iostream>
#include <vector>

int* tomb(int meret){         // egy függvény mint létrehozó konstruktor

   int* t = new int[meret];
   return t;
}

int main (int argc, char *argv[])
{
   int* t = tomb(10);      // létrehozunk ey 10 elemű tömböt

   t[6] = 42;

   std::cout << t[6] << std::endl;

   delete [] t;   

   return 0;
}
/*
g++
Kimenet:
42
*/

5. kártya

#include <iostream>
#include <vector>

int* tomb(int meret){         

   int* t1 = new int[meret];
   int* t2 = new int[meret];
   return t2;
}

int main (int argc, char *argv[])
{
   int* t = tomb(10);      

   t[6] = 42;

   std::cout << t[6] << std::endl;

   delete [] t;   

   return 0;
}
/*
t1 a függvényben felesleges, másrészről hibás is! Lefogaljuk a helyet de nem szabadítjuk fel!
*/
#include <iostream>
#include <vector>

int* tomb(int meret){         

   int* t = new int[meret];
   return new int[meret];
}

int main (int argc, char *argv[])
{
   int* t = tomb(10);      

   t[6] = 42;

   std::cout << t[6] << std::endl;

   delete [] t;   

   return 0;
}
/*
A t-vel fölöslegesen foglalunk le helyet és még hibát is hordz mivel a lefoglalt helyet nem szabadítjuk fel!

Különbség a return-nál feledezhető fel mivel az elsőben a t2-nél példányosítunk majd úgy adjuk át, míg a másodikban nincs példányosítás.
*/

Szólj hozzá!

A bejegyzés trackback címe:

https://proghelp.blog.hu/api/trackback/id/tr312799461

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása