Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Alocare dinamica-functii  (Citit de 2319 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Patrunjel
Strain
*

Karma: -12
Deconectat Deconectat

Mesaje: 30



Vezi Profilul
« : Octombrie 28, 2010, 23:02:57 »

Salut, tot eu Smile M-am apucat sa invat alocare dinamica, am inteles in mare parte, insa m-am incurcat la ceva.Tot ce e in functii am inteles, insa n-am priceput cum iau adr1,adr2 si adr valori in main (e pus acolo comentariu in sursa)
Cod:

#include<iostream>
using namespace std;

void* cit_mat(int m,int n)
{   int i,j,(*adr1)[10]=new int [10][10];
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            cin>>adr1[i][j];
    return adr1;
}

void tip_mat(int m,int n, int(*adr1)[10])
{   int i,j;
    for(i=0;i<m;i++)
    {   for(j=0;j<n;j++)
            cout<<adr1[i][j]<<" ";
        cout<<endl;
    }
}

void* suma_mat(int m,int n, int(*adr1)[10],int (*adr2)[10])
{   int i,j,(*adr)[10]=new int[10][10];
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            adr[i][j]=adr1[i][j]+adr2[i][j];
    return adr;
}


int main()
{
    int m,n,i,j,(*adr)[10],(*adr1)[10],(*adr2)[10];
    cout<<"m="; cin>>m;
    cout<<"n="; cin>>n;
    adr1=(int(*)[10])cit_mat(m,n);//De ce (int(*)[10])cit_mat(m,n)
    adr2=(int(*)[10])cit_mat(m,n);//De ce doar operatorul de dereferentiere in paranteze?
    adr=(int(*)[10])suma_mat(m,n,adr1,adr2);
    tip_mat(m,n,adr);
    return 0;
}

PS: Am scris toate functiile ca nustiu...poate ajuta cu ceva, desi problema mea e ca nu inteleg ce se intampla in main...
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #1 : Octombrie 29, 2010, 08:54:57 »

Acolo nu ai dereferentiere, ci typecasting. Functiile iti returneaza pointeri void*, tie iti trebuie int*.
Memorat
Patrunjel
Strain
*

Karma: -12
Deconectat Deconectat

Mesaje: 30



Vezi Profilul
« Răspunde #2 : Octombrie 29, 2010, 13:12:52 »

Am priceput in mare...insa ma poti ajuta cu un link, ceva legat de asta? Smile
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #3 : Octombrie 29, 2010, 14:37:19 »

Google e prietenul tau! http://tinyurl.com/2u5daqf

Un link mai la obiect, ca sa te scutesc de cautari:
http://www.exforsys.com/tutorials/c-plus-plus/c-type-conversions.html

Insa oricand poti sa faci si tu pasii pe care i-am facut eu: 1) cauti pe google 2) citesti 2-3 articole 3) daca ai neclaritati intrebi pe forum. In plus, facand ai un mare beneficiu: cand intrebi ceva, deja anticipezi raspunsul sau, mai bine chiar, intelegi jargonul folosit de cel care iti raspunde.

PS: de ce toata lumea vrea mura-n-gura totul?
« Ultima modificare: Octombrie 29, 2010, 15:24:46 de către Sima Cotizo » Memorat
Patrunjel
Strain
*

Karma: -12
Deconectat Deconectat

Mesaje: 30



Vezi Profilul
« Răspunde #4 : Octombrie 29, 2010, 14:46:35 »

Nu vroiam mura-n gura, sunt linuxar, crede-ma, sunt obisnuit sa caut.Ideea era ca am cautat aseara (inainte sa postez) despre alocare in heap&stuff, dar nu prea am gasit cine stie ce.Si ma steptam ca typecastingul si matricea alocata in heap ( sa zic asa) sa fie legate...de-aia te-am rugat sa ma ajuti cu un link, odata ce tu ai inteles ceea ce eu n-am prea priceput, aveai idei de keyworduri, dupa aia un CTRL+c CTRL+v la link si in 30 de sec era gata.Mersi mult oricum, acuma ma uit peste ele (ca sa nu iesi in paguba, ti le dau inapoi, daca vrei).
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #5 : Octombrie 29, 2010, 14:47:58 »

Coty, nu mai scrie cu fonturi asa mici ca poate se intelege altceva!
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #6 : Octombrie 29, 2010, 15:24:58 »

Coty, nu mai scrie cu fonturi asa mici ca poate se intelege altceva!
Very Happy fixed

@patrunjel: nu te zbarli, o formulare de genul "am cautat 'typecasting c++' pe google dar nu m-am lamurit" te asigur ca nu deranjeaza pe nimeni Wink
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines