|
Titlul: return matrice Scris de: Dragos din Ianuarie 21, 2010, 18:38:37 cum se mai returneaza o matrice si functia de ce tip trebuie sa fie?
Cod: #include<iostream> Titlul: Răspuns: return matrice Scris de: Savin Tiberiu din Ianuarie 21, 2010, 19:06:19 Cod: int** gigi(int** a) {Ar trebui sa mai mearga si in felul asta dar nu sunt sigur: Cod: int[][3] gigi(int[][3] a) {Titlul: Răspuns: return matrice Scris de: Dragos din Ianuarie 21, 2010, 19:07:47 Cod: int** gigi(int** a) {Ar trebui sa mai mearga si in felul asta dar nu sunt sigur: Cod: int[][3] gigi(int[][3] a) {zice gigi was not declared in this scope Titlul: Răspuns: return matrice Scris de: Mircea Dima din Ianuarie 21, 2010, 19:38:17 incearca cu stl
Cod: #include <cstdio> Titlul: Răspuns: return matrice Scris de: Dragos din Ianuarie 21, 2010, 19:44:51 deci merge cu codul asta la mine pe winDOS dar la recomandarea cuiva care zicea ca nu e bine si ca nu va merge intotdeana am creat un subiect nou pe care va rog sa-l cititi si sa-mi spuneti cum se comporta codul pe linux
Cod: #include<iostream> Titlul: Răspuns: return matrice Scris de: alexandru din Ianuarie 21, 2010, 22:03:44 Ce vrei tu nu se poate. Matricea nu este un tip de data. int** a nu este o matrice!!
Varianta Cod: #include <iostream> Titlul: Răspuns: return matrice Scris de: Andrei Grigorean din Ianuarie 21, 2010, 23:52:05 Ai doua solutii:
1) Inveti pointeri si folosesti int**. 2) Inveti OOP si iti faci o clasa. Titlul: Răspuns: return matrice Scris de: Dragos din Ianuarie 21, 2010, 23:56:04 Ai doua solutii: 2)stiu, dar nu vreau sa fac cu clasa1) Inveti pointeri si folosesti int**. 2) Inveti OOP si iti faci o clasa. 1) sper ca nu te referi sa scriu int** in programul de mai sus ca nu merge, crede-ma nu am stat numai eu astazi la el am incercat o groaza de variante si nu a mers(bine variante de a pune pointerii si chestii dastea ca cu <vector> merge dar nu vreau cu vector vreau cat mai simplu( cum zice semnatura lui marius :p ) in C merge programul de mai sus cu cateva modificari anume sa mai declar un pointer (**k sa zicem) in functia gigi() care sa preia informatiile di n matrice si sa returnez pointeul nu matricea dar merge doar in C am incercat in C++ pe codeblocks cu compilator de gcc si nu a mers Titlul: Răspuns: return matrice Scris de: Savin Tiberiu din Ianuarie 22, 2010, 01:28:04 Cod: void init(int a[][3]) {Daca ai vrea sa zicem sa faci ceva de genul Cod: int[][3] blabla(param1, param2) {Cod: void blabla(param1, param2, int ret[][3]) {Titlul: Răspuns: return matrice Scris de: Andrei Grigorean din Ianuarie 22, 2010, 01:42:11 Dupa cum spuneam mai sus, poti folosi int**:
Cod: #include<iostream> Si chiar as invata mai multe despre pointeri in locul tau ;) Titlul: Răspuns: return matrice Scris de: Dragos din Ianuarie 22, 2010, 08:16:47 Dupa cum spunea mai sus, poti folosi int**: pai da daca tot "te iei de mine" macar da-mi si codul :ok:Cod: #include<iostream> Si chiar as invata mai multe despre pointeri in locul tau ;) mersi :peacefingers: Titlul: Răspuns: return matrice Scris de: Mircea Dima din Ianuarie 22, 2010, 09:56:28 cred ca asta e singura metoda care sa iti returneze "o noua matrice" deorece nu folosesti obiecte
Cod: #include<iostream> Titlul: Răspuns: return matrice Scris de: Andrei Grigorean din Ianuarie 22, 2010, 11:28:28 Blasterz, ai grija la memory leaks.
Titlul: Răspuns: return matrice Scris de: Mircea Dima din Ianuarie 22, 2010, 11:41:49 stiu... dar i-am aratat ca merge...
Cod: #include<iostream> Titlul: Răspuns: return matrice Scris de: Dragos din Ianuarie 22, 2010, 14:17:08 Cod: int** gigi(int** a) {si inca o intrebare de ce trebuie mereu folosit delete? se ia 100 si fara delete. tot nu8 inteleg de ce sa folosim deleta daca avem loc in memoria ram pentru toate datele pe care le folosim? daca era sa folosim o matrice sau un vector foarte mare X si sa-i punem valorile in altul Y si de X sa nu mai avem nevoie intelegeam de ce sa facem delete dar asa nu-mi dau seama o explicatie? Titlul: Răspuns: return matrice Scris de: Savin Tiberiu din Ianuarie 22, 2010, 14:27:20 @blasterz: Esti sigur ca e ok sa returnezi adresa unei variabile declarate local? Stiu ca merge ca am folosit si eu odata dar gcc-u imi dadea warning si mie se parea destul de intemeiat ce zicea el acolo.
Titlul: Răspuns: return matrice Scris de: Andrei Grigorean din Ianuarie 22, 2010, 14:58:12 @apocalypto: http://www.lysator.liu.se/c/c-faq/c-2.html. Intr-adevar, la olimpiada merge si fara sa stergi datele alocate dinamic. Insa in viata reala, oriunde ai scrie cod, trebuie sa ai grija sa stergi tot ce aloci, altfel ajungi sa ai memory leaks (http://en.wikipedia.org/wiki/Memory_leak).
@devilkind: El nu returneaza adresa unei variabile declarate local, ci valoarea ei. Titlul: Răspuns: return matrice Scris de: Dragos din Ianuarie 22, 2010, 15:24:29 @apocalypto: http://www.lysator.liu.se/c/c-faq/c-2.html. Intr-adevar, la olimpiada merge si fara sa stergi datele alocate dinamic. Insa in viata reala, oriunde ai scrie cod, trebuie sa ai grija sa stergi tot ce aloci, altfel ajungi sa ai memory leaks (http://en.wikipedia.org/wiki/Memory_leak). corect@devilkind: El nu returneaza adresa unei variabile declarate local, ci valoarea ei. mersi pentru linkuri |