我需要一个仅在一个维度上是动态的字符的多维数组...
我必须存储一对字符串,每个字符串的长度为 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
as (abc,123) (def,456) (ghi,789)
,我不会像这样使用 3 行每行 2 对矩阵:
abc | 123
def | 456
ghi | 789
但相反,这就是我得到的:
abc | 123
def | 45def | 45de
ghi | 789
这样做的正确方法是什么?谢谢!