/* * dynamic.cpp * * Created on: 14.03.2013 * Author: trifon */ #include #include using namespace std; void f(int x, double y, int z = 1, char t = 'a') { cout << "x = " << x << endl; cout << "y = " << y << endl; cout << "z = " << z << endl; cout << "t = " << t << endl; } void memoryLeak() { const int MAX = 2000000; while (1) { double* p = new double[MAX]; for(int i = 0; i < MAX; i++) p[i] = 0; cout << "OK\n"; cin.get(); } } void average() { double* a[100]; // TODO: за произволен брой числа int i = 0; do { a[i] = new double; cin >> *a[i]; i++; } while (*a[i-1] > 0); int n = i - 1; double sum = 0; for(int j = 0; j < n; j++) { sum += *a[j]; cout << *a[j] << endl; } cout << sum / n << endl; for(int j = 0; j < n; j++) delete a[j]; } void transposeMatrix() { int n, m; cout << "Брой редове: "; cin >> n; cout << "Брой стълбове: "; cin >> m; int** a = new int*[n]; for(int i = 0; i < n; i++) a[i] = new int[m]; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) { cout << "a[" << i << "][" << j << "] = "; cin >> a[i][j]; } if (n == m) for(int i = 0; i < n; i++) for(int j = 0; j < i; j++) { int x = a[i][j]; a[i][j] = a[j][i]; a[j][i] = x; } for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) cout << a[i][j] << ' '; cout << endl; } for(int i = 0; i < n; i++) delete[] a[i]; delete[] a; } int main() { // memoryLeak(); // transposeMatrix(); // average(); int *p = new int; *p = 5; // !!! не се препоръчва! int& y = *p; y = 2; cout << *p << endl; int *p2 = p; *p2 = 10; cout << *p << endl; delete p2; // !!!!! *p = 20; // !!!!! cout << *p << endl; p = new int[10]; for(int i = 1; i <= 10; i++) { p[i-1] = i; cout << p[i-1] << ' '; } cout << endl; // !!! delete [] (p+2); // !!! delete (p+2); // !!! (delete p) + 2; delete[] p; // може и // delete p; // !!!p = NULL; // !!! delete p; // !!!!delete[] p; int x; p = &x; // !!! delete p; // !!! double (*op)(double) = sin; // !!! delete op; // !!! void* v = op; // !!! delete v; cout << "Живи сме още!"; f(1, 1.2); f(1, 1.2, 5); f(1, 1.2, 5, 'b'); return 0; }