Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok NapísalOffline : 29.01.2014 9:56

Dobrý deň

Potreboval by som nájsť chybu v tomto kóde:

Chcem aby funkcia vrátila vytvorenú maticu , pričom vstupom by bol počet riadkov ,stĺpcov ;

http://pastebin.com/Z0p6WsF0

void matice(int **Matica,int pocet_riadkov ,int pocet_stlpcov )
{
int i,j;

srand((long)time(NULL));

matica= (int**)malloc(pocet_riadkov *sizeof(int*));

matica[0]= (int*)malloc(pocet_stlpcov *sizeof(int));
matica[1]= (int*)malloc(pocet_stlpcov *sizeof(int));

for (i=0;i< pocet_riadkov;i++)
{
for (j=0;j< pocet_stlpcov;j++)
{
matice[i][j]=rand()%100;
}
}
}

Ďakujem


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 29.01.2014 10:11

S maticami (2-rozmernými poliami) pracuješ takto
Kód:
#include <stdio.h>

int main()
{
    int ** matica;
    int riadky, stlpce;
    int i,j;

    riadky = 5;
    stlpce = 5;

    // vyvorenie (alokovanie) pola
    matica = (int **) malloc( riadky * sizeof(int*) );
    for( i = 0; i < riadky; i++ )
        matica[i] = (int *) malloc( stlpce * sizeof(int) );

    // naplnenie pola
    for( i = 0; i < riadky; i++ )
        for( j = 0; j < stlpce; j++ )
            matica[i][j] = i*j;

    // vypis pola
    for( i = 0; i < riadky; i++ )
    {
        for( j = 0; j < stlpce; j++ )
            printf( "%d ", matica[i][j] );
        printf( "\n" );
    }

    // uvolnenie (dealokovanie) pola
    for( i = 0; i < riadky; i++ )
        free( matica[i] );
    free( matica );

    return 0;
}







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok Napísal autor témyOffline : 29.01.2014 10:47

a keby to chcem spraviť cez void ? ako samostatnú funkciu ? tak ako by ta funkcia vyzerala ? ďakujem


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 29.01.2014 11:13

Tak ak chceš funkciu, tak nepoužívaj void, ale návratový typ, ktorý chceš vrátiť. No a vrátiš teda vytvorenú maticu (int **) Nemusíš to riešiť cez výstupné parametre (to by si tam mal v tomto prípade už tri hviezdičky a to už je trocha madness :D )







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa
Príspevok Napísal autor témyOffline : 29.01.2014 11:17

dobre, ďakujem za objasnenie :-)


Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. pascal - matica reťazcov

v Assembler, C, C++, Pascal, Java

16

1856

06.01.2009 19:22

neutronmind Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Odtrhnuta M.2 matica

v AMD čipové sady

6

694

22.03.2020 17:48

Nemesis97 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra