Anonymní profil Robo – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Robo – Programujte.comAnonymní profil Robo – Programujte.com

 

Příspěvky odeslané z IP adresy 178.253.153.–

Robo
C / C++ › dynamická alokace
15. 12. 2013   #185302

Napísal som to, ale až potom som si uvedomil že to robím pre pole a nie pre matice :D
ale postup je ten istý aj pre matice, len to zapíšeš tak ako písal KIIV.

 

#include <iostream>
#include <ctime>

using namespace std;

int *zapln_pole(int arr[], int *n, int count);	
int *zvacsi_pole(int arr[], int n, int count);

int main()
{
	srand(time(NULL));
	int a = 0;
	int *arr = new int[a];
	int count;

	cout << "Zadaj pocet prvkov: ";
	cin >> count;
	
	// cyklus bezi pokial nezadas zaporne cislo, stale sa pyta, o kolko chces zvacsit pole
	while(count > 0){
		arr = zapln_pole(arr, &a, count);

		cout << "Zadaj pocet prvkov: ";
		cin >> count;
	}

	// vypis
	for(int i = 0; i < a; i++)
		cout << arr[i] << endl;
	
	delete [] arr;

	system("PAUSE");
}

int *zapln_pole(int arr[], int *n, int count){
	arr = zvacsi_pole(arr, *n, count);	//pole sa zvacsi o count

	// vkladanie nahodnych hodnot
	for(int i = *n; i < *n + count; i++){
		arr[i] = rand() % 100;
	}

	*n += count;						// zvacsenie premennej celkovej dlzky pola
	return arr;							// v maine sa do pola arr vrati adresa noveho arr a delete sa bude stahovat uz ktomuto novemu arr
}

int *zvacsi_pole(int arr[], int n, int count){
	int *arr2 = new int[n + count];	// vytvorenie noveho pola
	
	for(int i = 0; i < n; i++){
			arr2[i] = arr[i];
	}

	delete [] arr;					// zmazanie stareho pola
	return arr2;					// treba vratit adresu noveho pola a priradit ju k nazvu stareho (zmazaneha) pola
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý