Мне нужен многомерный массив символов, который является динамическим только в одном измерении ...
Я должен хранить пару строк длиной 10 (или менее) символов в каждой, но с переменным количеством «пар».
Моя идея была такой
char (*instrucao)[2][10];
Что дает мне указатель на массив символов 2x10, но это не работает должным образом, когда я делаю что-то вроде этого:
char strInstrucoes[117], *conjunto = calloc(21, sizeof(char));
instrucao = calloc(1, sizeof(char[2][10]));
conjunto = strtok(strInstrucoes,"() ");
for(i = 0; conjunto != NULL; i++){
realloc(instrucao, i+1*sizeof(char[2][10]));
sscanf(conjunto,"%[^,],%s", instrucao[i][0], instrucao[i][1]);
printf("%s | %s\n", instrucao[i][0], instrucao[i][1]);
conjunto = strtok(NULL, "() ");
}
Имея strInstrucoes
как (abc,123) (def,456) (ghi,789)
, я не матрица с 3 линиями по 2 пары в каждой, как это:
abc | 123
def | 456
ghi | 789
но вместо этого вот что я получаю:
abc | 123
def | 45def | 45de
ghi | 789
Какой правильный способ сделать это?
Спасибо!