Здравствуйте, мучаюсь с 2D массивом char'ов в struct C++ и прошу Вашей помощи.
Что нужно сделать? Инициализировать структуру с пустым 2D массивом char. Позже нужно записать строки в этот массив и вывести в консоль отдельные элементы массива с помощью for цикла.
У меня получилось инициализировать массив сразу, а не потом, таким образом:
#include <iostream>
using namespace std;
struct Wifi {
char *access[2][2] = {
{
"TEST",
"123456"
},
{
"DIR",
"654321"
}
};
} wifi;
int main() {
for (int i = 0; i < sizeof(wifi.access) / sizeof(wifi.access[0]); i++) {
cout << wifi.access[i][0] << ": " << wifi.access[i][1] << '\n';
// TEST: 123456
// DIR: 654321
}
return 0;
}
Привожу список своих проб и ошибок:
struct Wifi {
char *access[1][2];
} wifi;
char ssid[32] = "TEST";
char password[32] = "123456";
wifi.access[0][0] = ssid;
wifi.access[0][1] = password;
// error: 'wifi' does not name a type
struct Wifi {
char *access[1][2];
} wifi;
char ssid[32] = "TEST";
char password[32] = "123456";
strcpy(wifi.access[0][0], ssid);
strcpy(wifi.access[0][1], password);
// error: expected constructor, destructor, or type conversion before '(' token
//strcpy(wifi.access[0][0], ssid);
// ^
struct Wifi {
char access[1][2][32];
} wifi;
char ssid[32] = "TEST";
char password[32] = "123456";
wifi.access[0] = { ssid, password };
// error: 'wifi' does not name a type
// wifi.access[0] = { ssid, password };
// ^~~~