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

prevod iz C u C++

[es] :: C/C++ programiranje :: prevod iz C u C++

[ Pregleda: 3911 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

_shame_

Član broj: 71683
Poruke: 40
*.dlp131.bih.net.ba.



Profil

icon prevod iz C u C++21.01.2006. u 16:36 - pre 162 meseci
Moze li mi neko pojasniti ovaj kod….i ako jee moguce da ga prevede iz C u C++….bio bi jako zahvalan:)):

#include <stdio.h>
#include <stdlib.h>

typedef struct ns {
int data;
struct ns *next;
} node;


node *list_add(node ** p, int i) {
node *n =malloc(sizeof(*n));
n->next = *p;
*p = n;
n->data = i;
return n;
}
void list_remove(node ** p) {
if (p) {
node *n = *p;
*p = (*p)->next;
free(n);
}
}

node **list_search(node ** n, int i) {
if (!n) return NULL;
while (*n) {
if ((*n)->data == i) {
return n;
}
n = &(*n)->next;
}
return NULL;
}

void list_print(node * n) {
if (!n) printf("list is empty\n");
while (n) {
printf("print %p %p %i \n", n, n->next, n->data);
n = n->next;
}
}

int main(void) {
node *n = NULL;

list_add(&n, 0);
list_add(&n, 1);
list_add(&n, 2);
list_add(&n, 3);
list_add(&n, 4);
list_print(n);
list_remove(&n);
list_remove(&n->next);
list_remove(list_search(&n, 1));
list_remove(&n->next);
list_remove(&n);
list_print(n);

return 0;
}
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: prevod iz C u C++21.01.2006. u 16:56 - pre 162 meseci
Problem onih koji su odmah ucili C++ bez znanja C je upravo ovo.
Kako mislis prevesti C kod u C++ kad je on vec sam od sebe potpuno kompatibilan sa C++ kompajlerima?

Radi se o maloj biblioteci za rad sa listom.
U C++(STL) potrazi std::list.
 
Odgovor na temu

_shame_

Član broj: 71683
Poruke: 40
*.dlp81.bih.net.ba.



Profil

icon Re: prevod iz C u C++21.01.2006. u 22:37 - pre 162 meseci
Hm...meni za zadacu treba ovaj kod,ali u c++,znam da je kod sam od sebe potpuno kompatibilan sa C++ kompajlerima,ali to mi prof nece šriznati:((.
 
Odgovor na temu

_shame_

Član broj: 71683
Poruke: 40
*.dlp81.bih.net.ba.



Profil

icon Re: prevod iz C u C++21.01.2006. u 22:39 - pre 162 meseci
A i ovaj mi kod javlja BUG u ovom redu:
node *n =malloc(sizeof(*n));
Pa ak moze da se bar to ispravi.
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.32.eunet.yu.



+9 Profil

icon Re: prevod iz C u C++22.01.2006. u 00:41 - pre 162 meseci
A probaj da napišeš sledeće:

node *n = (node*)malloc(sizeof(*n));
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.56.eunet.yu.



+2 Profil

icon Re: prevod iz C u C++22.01.2006. u 00:46 - pre 162 meseci
ili
node *n = malloc(sizeof(node));
?

To ti je zamena za:
node *n;
n=malloc(sizeof(node));

[Ovu poruku je menjao Pharos dana 22.01.2006. u 02:01 GMT+1]
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.70.eunet.yu.



+2 Profil

icon Re: prevod iz C u C++22.01.2006. u 03:25 - pre 162 meseci
Imaš ti tu još grešaka, npr:
Funkcija za brisanje liste:
Umesto
Code:

void list_remove(node ** p) {
if (p) {
node *n = *p;
*p = (*p)->next;
free(n);
}
}

Trebalo bi:
Code:

void list_remove(node ** p) {
while(*p) {
node *n = *p;
*p = (*p)->next;
free(n);
}
}

While petlja je potrebna zato što moraš proći kroz sve elemente liste.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

_shame_

Član broj: 71683
Poruke: 40
*.dlp75.bih.net.ba.



Profil

icon Re: prevod iz C u C++28.01.2006. u 23:25 - pre 162 meseci
moze li mi neko reci...sta radi u ovom redu radi malloc?
node *n = malloc(sizeof(node));
Ili sta inace radi malloc??
 
Odgovor na temu

dimitar 16
Dimitar Misev
Makedonija

Član broj: 31509
Poruke: 134
62.162.20.*

Jabber: dimitarmisev@gmail.com


Profil

icon Re: prevod iz C u C++28.01.2006. u 23:35 - pre 162 meseci
Alocira memorija na heap-u.
 
Odgovor na temu

_shame_

Član broj: 71683
Poruke: 40
*.dlp75.bih.net.ba.



Profil

icon Re: prevod iz C u C++29.01.2006. u 00:58 - pre 162 meseci
Mozes li malo detaljnije..ne kuzim ja bash c++
 
Odgovor na temu

SashaX

Član broj: 50542
Poruke: 65
*.crnagora.net.

Sajt: www.eipix.com


Profil

icon Re: prevod iz C u C++29.01.2006. u 17:59 - pre 162 meseci
Znaci da si "rezervisao" prostor u memoriji velicine node tipa (sizeof() vraca velicinu u bajtovima), i vratio adresu tog alociranog prostora pointeru n
 
Odgovor na temu

dragansm
Dragan Smiljanic

Član broj: 38170
Poruke: 191
*.beotel.net.



Profil

icon Re: prevod iz C u C++29.01.2006. u 18:35 - pre 162 meseci
Ovaj kod:
Code:

int main(void) {
node *n = NULL;

list_add(&n, 0);
list_add(&n, 1);
list_add(&n, 2);
list_add(&n, 3);
list_add(&n, 4);
list_print(n);
list_remove(&n);
list_remove(&n->next);
list_remove(list_search(&n, 1));
list_remove(&n->next);
list_remove(&n);
list_print(n);

return 0;
}


treba da ima oblik
Code:

int main(void) {
node *n = NULL;

my_list list;

list.add(0);
list.add(1);
list.add(2);
list.add(3);
list.add(4);
n = list.last();
list.print(n);
list.remove(n);
list.remove(n->next);
n = list.search(1)
list.remove(n);
list.remove(n->next);
list.remove(n);
list.print(n);

}


Na tebi je da o datog c koda napises klasu my_list.
 
Odgovor na temu

smark
Principal Manager, Software Development,
Microsoft
Prague

Član broj: 20964
Poruke: 437
*.bvcom.net.

Sajt: cz.linkedin.com/in/msmark..


+11 Profil

icon Re: prevod iz C u C++30.01.2006. u 00:08 - pre 162 meseci
Citat:
_shame_: moze li mi neko reci...sta radi u ovom redu radi malloc?
node *n = malloc(sizeof(node));
Ili sta inace radi malloc??


Zar se u C++ ne koristi new umesto malloc?
 
Odgovor na temu

B.Lale
Novi Sad

Član broj: 23261
Poruke: 23
..mtsns-ns.customer.sbb.co.yu.

ICQ: 209643096


Profil

icon Re: prevod iz C u C++31.01.2006. u 08:38 - pre 162 meseci
Pa ako profa nije trazio bash objektno orijentisan program onda samo umesto malloc stavis new i umesto free stavis delete.
Umesto:
node *n =(node*)malloc(sizeof(node));

Ide:
node *n = new node;

A umesto:
free(n);

Ide:
delete n;

I umesto printf koristi cout.
I da, umesto:
#include <stdio.h>
#include <stdlib.h>

Pisi:
#include <cstdlib>
#include <iostream>
using namespace std;

Toliko od mene...
 
Odgovor na temu

_shame_

Član broj: 71683
Poruke: 40
*.dlp365.bih.net.ba.



Profil

icon Re: prevod iz C u C++02.02.2006. u 17:29 - pre 162 meseci
pa sta cu staviti umesto:
novi=(Elem*)malloc(sizeof(Elem));...
Kako da ovo napisem preko new naredbe???
 
Odgovor na temu

[es] :: C/C++ programiranje :: prevod iz C u C++

[ Pregleda: 3911 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

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