динамический двумерный массив...

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
30
Реакции
0
как создать динамический двумерный массив? В интернете всё, что искал, ничего не помогло и не понял :(

задача заключается в том, чтобы в массив записать карту (string, который в свою очередь тоже массив), и её порядковый номер, типа:
map [ i ] [ mapname ];

так не работает, пишет, что размер массива должен быть определён:


new i;
new buffer[256];
new map[buffer];

public function()
{
new maps_ini_file[64];
get_configsdir(maps_ini_file, charsmax(maps_ini_file));
format(maps_ini_file, charsmax(maps_ini_file), "%s/maps.ini", maps_ini_file);
new file = fopen(maps_ini_file, "rt");

i = 0;

while(!feof(file))
{
i += 0;

fgets(file, buffer, charsmax(buffer));
trim(buffer);

if(!buffer[0] || buffer[0] == EOS)
continue;

remove_quotes(buffer);
}

fclose(file);
}

если не задаю слишком глупый вопрос, подскажите, каким образом эту задачу можно реализовать? ,_,
буду благодарен ^_^
 
Сообщения
1,293
Реакции
2,290
Помог
57 раз(а)
drejblour, вы точно понимаете, что такое динамический массив в amxx?
27 Июл 2023
Код:
#include <amxmodx>

#define MAX_NAME_LEN 64
#define MAX_ITEMS_IN_ARRAY 32

enum _:data_struct {
    data_pos,
    data_mapname[MAX_NAME_LEN]
}

new g_eData[MAX_ITEMS_IN_ARRAY][data_struct]

new const MAPS[][] = {
    "de_inferno",
    "de_nuke",
    "de_train",
    "de_tuscan",
    "cs_mansion",
    "cs_italy"
}

public plugin_init() {
    register_concmd("arraytest", "SomeFunc")
}

public SomeFunc(pPlayer) {
    for(new i; i < sizeof(MAPS); i++) {
        copy(g_eData[i][data_mapname], MAX_NAME_LEN - 1, MAPS[i])
        g_eData[i][data_pos] = i
    }

    for(new i; g_eData[i][data_mapname][0] != EOS; i++) {
        console_print(pPlayer, "Pos: %i, MapName: %s", g_eData[i][data_pos], g_eData[i][data_mapname])
    }

    return PLUGIN_HANDLED
}

22:40:34 arraytest
22:40:35 Pos: 0, MapName: de_inferno
Pos: 1, MapName: de_nuke
Pos: 2, MapName: de_train
Pos: 3, MapName: de_tuscan
Pos: 4, MapName: cs_mansion
Pos: 5, MapName: cs_italy
 

Вложения

Последнее редактирование:
Сообщения
30
Реакции
0
благодарю <333

+like BlackSignature, можно закрывать темку :D
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу