Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

iz statickog niza u dinamicki :)

[es] :: C/C++ programiranje :: C/C++ za početnike :: iz statickog niza u dinamicki :)

[ Pregleda: 2951 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

xunpehpa
banja luka

Član broj: 124941
Poruke: 1
*.dlp487.bih.net.ba.



Profil

icon iz statickog niza u dinamicki :)11.12.2006. u 17:05 - pre 211 meseci
Treba niz koji je prikazan prebaciti u dinamicki a da program radi...nikako mi neuspijeva:(

Code:


#include<iostream.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
int main(){
     int a[20]={7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1};
     int b[20];
     int j=0;
     int k; 
     for (int i=0; i<20; i++) {
         b[j]=a[i];
         j++; }
         for (int j=0; j<3; j++) {
             cout<<"\nUpisan je element: "<<b[j]; }
             for (int j=3; j<20; j++) {
                 for (int i=0; i<3; i++) {
                     if (b[j]==a[0]) { 
                     cout<<"\nElement: "<<b[j]<<" je naden na poziciji: 0!"; 
                     a[0]=a[1];
                     a[1]=a[2];
                     a[2]=b[j]; break; }
                     if (b[j]==a[1]) { 
                     cout<<"\nElement: "<<b[j]<<" je naden na poziciji: 1!"; 
                     a[1]=a[2];
                     a[2]=b[j]; break; }
                     if (b[j]==a[2]) { 
                     cout<<"\nElement: "<<b[j]<<" je naden na poziciji: 2!"; break; }
                                   if (b[j]!=a[0] && b[j]!=a[1] && b[j]!=a[2] ) {
                                        cout<<"\nElement: "<<b[j]<<" nije naden te se zato smijesta poziciju: 2!";
                                        a[0]=a[1];
                                        a[1]=a[2];
                                        a[2]=b[j]; } break; } }
                                        getch ();
                                        return 0;
                                        }   


[Ovu poruku je menjao X Files dana 11.12.2006. u 18:51 GMT+1]
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
89.190.198.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: iz statickog niza u dinamicki :)11.12.2006. u 17:49 - pre 211 meseci
Hajde pojasni malo sta podrazumevaš pod "statičkim" i "dinamičkim" nizom (vidim da gore radiš neka premeštanja..). U principu "statičkom" nizu je veličina definisana pre kompajliranja:
Code:
int a[20];

Dok je "dinamičkom" u toku izvršenja programa:
Code:
void f(int k)
{
  int *a = new int[k];

  // ...
Pri čemu se ovako zauzeta memorija treba i osloboditi:
Code:
  // ...

  delete [] a;
}

Ipak se ++uje.
 
Odgovor na temu

n1tr0
Freelance
Cortanovci / NS

Član broj: 55279
Poruke: 465
*.ns.ac.yu.

Sajt: grubicv.iz.rs


+2 Profil

icon Re: iz statickog niza u dinamicki :)12.12.2006. u 09:02 - pre 211 meseci
Ako imas npr. u main-u niz a i iz njega pravis niz b potrebno je uraditi sledece:
Code:
int a[20]={7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1};
int br_el=20;
int *b=new int[br_el];
for(int i=0;i<br_el;i++) b[i]=a[i];

Kada ti je potrebno u nekoj f-ji napraviti din niz od nekog niza prosledis pokazivac na taj niz(npr. zelis od niza a u main napraviti niz b u nekoj f-ji):
Code:
void neka_f-ja(int *niz,int br_el){
int *b=new int[br_el];
for(int i=0;i<br_el;i++) b[i]=niz[i];
}
//a iz main-a gde ti je niz a pozoves sa
neka_f-ja(a,20);

...naravno ne zaboravi unistiti niz b tu gde si ga alocirao kada ti vise ne bude trebao sa:
Code:
delete [] b;
 
Odgovor na temu

SuPeR_MaSteR
Marko Stamenković

Član broj: 88590
Poruke: 115
*.inffo.net.



Profil

icon Re: iz statickog niza u dinamicki :)15.12.2006. u 01:03 - pre 211 meseci
I posle dealociranja memorije:
Code:

b = NULL;

sigurnosti radi :P
 
Odgovor na temu

codebreaker
Milan Savic
Zajechar

Član broj: 125807
Poruke: 7
*.smin.sezampro.yu.

ICQ: 463826210


Profil

icon Re: iz statickog niza u dinamicki :)19.12.2006. u 20:42 - pre 211 meseci
ako mislish na jednostruko spregnutu
....
typedef struct element
{
int info;
struct element *link;
}Element;
main(void)
{
....
Element *head,*p;
....
glava=NULL;
for(i=1;i<=20;i++)
{
p=(Element*)malloc(sizeof(Element));
p->link=glava;
glava=p;
p->info=a;
}
....
 
Odgovor na temu

SuPeR_MaSteR
Marko Stamenković

Član broj: 88590
Poruke: 115
*.inffo.net.



Profil

icon Re: iz statickog niza u dinamicki :)20.12.2006. u 22:12 - pre 211 meseci
Ne, mislio sam na postavljanje pointera na NULL posle oslobadjanja memorije na koju je prethodno pokazivao. (jer nista se ne desava ako se greskom ponovo pozove delete iliti u c-u free funkcjia).
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: iz statickog niza u dinamicki :)

[ Pregleda: 2951 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.