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?
t[i].szomszed = (char[10]*)(malloc((n-1)*sizeof(char[10])));
error: expected primary-expression before 'char'
error: expected ')' before 'char'
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:)
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
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
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);
}
}
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;
}
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!