Forum » Programiranje » c++
c++
Loaded ::
Lp
Kako funkcija vrne polje elementov? Napišem samo return polje[velikost], ali v stavku for? Prosim za ponazoritev ...
Lp
Kako funkcija vrne polje elementov? Napišem samo return polje[velikost], ali v stavku for? Prosim za ponazoritev ...
Lp
Loadeed
snow ::
Prvo si prebereš PREBERI ME: označevanje topicov v oddelku programiranje in popraviš ime teme in tudi v prihodnje, ko odpiraš teme upoštevaš omenjeno temo.
Iz funkcije vrneš samo enkrat. Nato se procesiranje funkcije zaključi.
Polje vračaš preko pointerja na prvi element.
Mogoče je boljša rešitev s STL vsebnikom vector.
Iz funkcije vrneš samo enkrat. Nato se procesiranje funkcije zaključi.
Polje vračaš preko pointerja na prvi element.
Mogoče je boljša rešitev s STL vsebnikom vector.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Matako ::
Najenostavnejša rešitev je z vračanjem kazalca, tako kot je omenil snow. Ker pa si ti omenil velikost polja, sem dodal še moj hitri primer, ki dela točno to, kar si ti hotel, se mi zdi. Vsebuje pa naslednje:
1.Strukturo Array, ki kao lahko shrani poljubno število elementov tipa MYTYPE, int konkretno. To ni razred, ampak struktura, čeprav ima konstruktor in destruktor. Lahko pa narediš class, če želiš.
2. Funkcijo foo(), ki naredi nek nov Array element, ga inicializira na nek način in "ga vrne" - to je, vrne kazalec nanj.
3. main(), ki vse to uporabi v primeru.
Ja vem, overkill.
1.Strukturo Array, ki kao lahko shrani poljubno število elementov tipa MYTYPE, int konkretno. To ni razred, ampak struktura, čeprav ima konstruktor in destruktor. Lahko pa narediš class, če želiš.
2. Funkcijo foo(), ki naredi nek nov Array element, ga inicializira na nek način in "ga vrne" - to je, vrne kazalec nanj.
3. main(), ki vse to uporabi v primeru.
Ja vem, overkill.
#include <stdio.h> #define MYTYPE int struct Array { int size; MYTYPE *data; Array(int); ~Array(); }; Array::Array(int size) { this->size = size; data = new MYTYPE[size]; } Array::~Array() { delete [] data; } Array* foo(int n) { // Dinam aloc. NE VRACAJ kazalcev na lok. spremenljivke!(ce prev. sploh dovoli) Array *a = new Array(n); for (int i=0;i<n;i++) a->data[i] = i; return a; } int main() { // primer funkcije, ki vrne nas objekt ... Array *a = foo(5); // izpisi vsebino nasega polja, bi moralo biti '01234' for (int i=0;i<a->size;i++) printf("%d", i); // sprosti pomnilnik delete a; }
/\/\.K.
Zgodovina sprememb…
- spremenil: Matako ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C - shranjevanje rezultatov iz baze v arrayOddelek: Programiranje | 1220 (919) | Randomness |
» | [C] Funkcija vrnitev kazalcaOddelek: Programiranje | 1189 (905) | MrStein |
» | [C++] Ali je mogoče?Oddelek: Programiranje | 1622 (1098) | Ciklamen |
» | [C] struct in int[] (strani: 1 2 )Oddelek: Programiranje | 7331 (6404) | MrBrdo |
» | [C++] dinamično 2d poljeOddelek: Programiranje | 3260 (3097) | bozjak |