Kezdőoldal » Számítástechnika » Programozás » C++ ban hogy kell létrehozni...

C++ ban hogy kell létrehozni dinamikusan egy n elemű tömböt, amelyiknek minden eleme egy max 10 betűből álló karakterlánc?

Figyelt kérdés

t[i].szomszed = (char[10]*)(malloc((n-1)*sizeof(char[10])));


error: expected primary-expression before 'char'

error: expected ')' before 'char'



2020. szept. 22. 19:41
 1/8 A kérdező kommentje:
Már vágom, hogy hülyeséget írtam és ez mátrix lesz char** nem char* azt hiszem
2020. szept. 22. 19:45
 2/8 A kérdező kommentje:

t[i].szomszed = (char**)(malloc((n-1)*sizeof(char*)));

for (j=0; j<n; ++j)

{

t[i].szomszed[j] = (char*)(malloc(sizeof(char[10])));

}


De igy sem jo valami, ugyhogy aki unatkozik segithetne:)

2020. szept. 22. 19:51
 3/8 A kérdező kommentje:

Tehát szerintem a kérdés nem jó, mert mátrix kell, nem tömb.

A lényeg annyi hogy n név van és a szomszédjaikat el kell tárolni ebben a mátrixban valahogy, de nem tudom hogy hozzam létre.

PL

n = 4

Pali - Pisti, Julcsi, Mari

Pisti - Pali

Julcsi - Pali, Mari

Mari - Pali, Julcsi

2020. szept. 22. 19:56
 4/8 A kérdező kommentje:

t[i].szomszed = (char**)(malloc((n-1)*sizeof(char*)));


for (j=0; j<n-1; ++j)


{


t[i].szomszed[j] = (char*)(malloc(sizeof(char[10])));


}


Ahh hulye vagyok a j is n-1ig megy

2020. szept. 22. 19:58
 5/8 A kérdező kommentje:
El vagyok amugy, megoldom magamnak asszem:)))
2020. szept. 22. 19:59
 6/8 anonim ***** válasza:
ez C, de mindegy.
2020. szept. 22. 21:16
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

Próbálj meg kiindulni ebből, remélem, hogy jól értelmeztem, hogy mit akarsz.


#include <iostream>

#include <string>


int main()

{

char* names[10];

for (int i = 0; i < 10; i++)

{

names[i] = new char[10]; // lehet malloc is

strncpy(names[i], "test", 10);

}

// vagy ha konkrétan C++-ra gondolsz

std::string strNames[10];

for (int i = 0; i < 10; i++)

{

strNames[i] = "test" + std::to_string(i);

}


}

2020. szept. 22. 21:21
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

Példával:


#include <stdio.h>

#include <cstring>


void print(char(&arr)[10]) {

::printf("%s\n", arr);

}


int main() {


constexpr int n = 2;

char (*arr)[10] = new char[n][10];



strcpy(arr[0], "hello");

print(arr[0]);



delete[] arr;

return 0;

}

2020. szept. 22. 22:05
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!