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
}