Kód: Vybrať všetko
#include <iostream>
using namespace std;
int main()
{
int * ar[2][2];
for(int i=0;i<2;i++)
for(int m=0;m<2;m++)
*ar[i][m]=1;
for(int c=0;c<2;c++)
for(int x=0;x<2;x++)
cout<<*ar[c][x];
system("pause");
return 0;
}
Kód: Vybrať všetko
#include <iostream>
using namespace std;
int main()
{
int * ar[2][2];
for(int i=0;i<2;i++)
for(int m=0;m<2;m++)
*ar[i][m]=1;
for(int c=0;c<2;c++)
for(int x=0;x<2;x++)
cout<<*ar[c][x];
system("pause");
return 0;
}Kód: Vybrať všetko
int ar[2][2];
int *pointer;
pointer=ar;
Kód: Vybrať všetko
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int **a;
int i=10;
if ( ( a = (int **)malloc(i*sizeof(int*)) ) == NULL )
{
printf("\nError, memory not allocated.\n");
exit(1);
}
for (int cnt=0;cnt<i;cnt++)
if ( ( a[cnt] = (int *)malloc(i*sizeof(int)) ) == NULL )
{
printf("\nError, memory not allocated.\n");
exit(1);
}
...
}
Kód: Vybrať všetko
//deklaracia dvojroz. pola, alebo ukazovatel na ukazovatel na int.
int ** pole;
//jeho alokovanie v pamati :).
pole = new char* [8];
for (int i=0; i<W; i++)
pole[i] = new char [8];
//alokuje sa pole o velkosti 8x8
Kód: Vybrať všetko
int** pole1; //deklaracia
pole1 = new char* [8];
for (int i=0; i<8; i++)
pole1[i] = new int [8]; //alokacia
int ** pole2; // deklarujes nove pole.
pole2 = pole1; // ak mu predas zaalokavane pole, tak pole 2 nemusis samo alokovat, zaalokuje ho pole1
// nakoniec vymazanie
for (int i=0; i<8; i++) //
delete pole2[i];
delete[] pole2;
for (int i=0; i<8; i++) //
delete pole1[i];
delete[] pole1;
ja som napísal: pole je v skutočnosti pointer...johny3212 napísal:feromakovi ukazovatel a pole je to iste...
jj sorac, zle som si to precital v rychlostiferomakovi napísal:ja som napísal: pole je v skutočnosti pointer...takže som rád že sme sa zhodli len nerozumiem prečo ma opakuješ
Kód: Vybrať všetko
int *funkcia(int ar[][y],int *velkost)
{.
.
.
return ar;
}
Kód: Vybrať všetko
void ZmenHodnotu(int** pole2, int W, int H) {
//nasa funkcia ktora cez ukazovatele zmani pole,
//ktore mu das ako parameter
for (int i = 0; i < W; i++) {
for (int j = 0; j < H; j++) {
pole2[i][j] = j;
}
}
//nemusis pouzivat navratovu hodnotu,
//pole2 ti ameni pole ktore zadas ako parameter
}
int main() {
int** pole1; //deklaracia pola
// alokujeme pole ako jednorozmerne pole na ukazovatel
pole1 = new int*[4];
for (int i = 0; i < 4; i++)
pole1[i] = new int[4]; //alokujeme nas ukazovatel, vznikne pole 4x4
//vypiseme pole po alokacii, bude nastavene na same nuly
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << pole1[i][j];
}
printf("\n");
}
printf("\n");
//pouzijeme funkciu, ktora zmeni prvky pola
//ako parameter daveme prvu adresu pola
ZmenHodnotu(pole1, 4, 4);
for (int i = 0; i < 4; i++) { //vypiseme pole po zmene
for (int j = 0; j < 4; j++) {
cout << pole1[i][j];
}
printf("\n");
}
printf("\n");
for (int i = 0; i < 4; i++) //vymazeme pole
delete pole1[i];
delete[] pole1;
return 0;
}
Kód: Vybrať všetko
for (int i = 0; i < 4; i++) //vymazeme pole
delete pole1[i];
delete[] pole1; Kód: Vybrať všetko
for (int i = 0; i < 4; i++) //vymazeme pole
delete[] pole1[i]; //toto je tiež pole a nie iba jedna hodnota, lebo prechádzaš iba "vonkajším" cyklom
delete[] pole1;