Kezdőoldal » Számítástechnika » Programozás » C-ben visszalehet valahogy...

C-ben visszalehet valahogy térni egy 2 dimenziós tömbbel?

Figyelt kérdés

Egy függvényből valahogy visszalehet térni egy tömbbel valahogy így?

char *leker(){

char tomb[3][32]={"teszt0", "teszt1", "teszt2"};

return tomb;

}



2018. febr. 22. 17:21
 1/4 anonim ***** válasza:
33%
A tömb pointerével térhetsz vissza.
2018. febr. 22. 17:22
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
100%

char *leker(){

char tomb[3][32]={"teszt0", "teszt1", "teszt2"};

return tomb;

}


Ez több sebből vérzik. Egyrészt az indirekció nem helyes, nem fordul így le.

DE a fontosabb: egy függvényben létrejött/létrehozott dolog megszűnik a visszatérés után!!!

Szóval neked dinamikusan kell foglalnod, és utána annak a pointerével visszatérned.

2018. febr. 22. 19:15
Hasznos számodra ez a válasz?
 3/4 sharkxxx ***** válasza:
50%

#include <stdio.h>

#include <string.h>

#include <stdlib.h>


typedef char TStrings[3][32];


TStrings * leker() {

    TStrings tomb = {"teszt0", "teszt1", "teszt2"};

    TStrings * tomb_p;


    // Allocate memory to return.

    // The memory pointed to will be on the heap,

    // so make sure to free it with the free() function

    // when you are done with it.

    tomb_p = malloc(sizeof(TStrings));


    strcpy((*tomb_p)[0], tomb[0]);

    strcpy((*tomb_p)[1], tomb[1]);

    strcpy((*tomb_p)[2], tomb[2]);

    return tomb_p;

}


int main()

{

    TStrings * tomb_p;

    tomb_p = leker();

    printf("%s\n", (*tomb_p)[0]);

    printf("%s\n", (*tomb_p)[1]);

    printf("%s\n", (*tomb_p)[2]);

    free(tomb_p); // Free memory.

    return 0;

}

2018. febr. 22. 19:17
Hasznos számodra ez a válasz?
 4/4 sharkxxx ***** válasza:
50%

// Itt van egy másik megoldás is.

#include <stdio.h>

#include <strings.h>


typedef struct {char items[3][32];} TStrings;


TStrings leker() {

    TStrings tomb = {"teszt0", "teszt1", "teszt2"};

    return tomb;

}


int main()

{

    TStrings tomb;

    tomb = leker();

    printf("%s\n", tomb.items[0]);

    printf("%s\n", tomb.items[1]);

    printf("%s\n", tomb.items[2]);

    return 0;

}

2018. febr. 22. 20:35
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!