0
我试图在矩阵中存储不同向量的内容。如何在矩阵中存储多个数组的矩阵在C中
向量长度不同,它们都是字符串。让说:
A = [“MXAA”, ”MXBB“, ”MXCC“] B = [ ”JJJ“, ”LKLKLKL“]
所以新的矩阵应如下所示:
C = [MXAA,MXBB,MXCC; JJJ,LKLKLKL,0]
是一种方法做,在C
感谢
我试图在矩阵中存储不同向量的内容。如何在矩阵中存储多个数组的矩阵在C中
向量长度不同,它们都是字符串。让说:
A = [“MXAA”, ”MXBB“, ”MXCC“] B = [ ”JJJ“, ”LKLKLKL“]
所以新的矩阵应如下所示:
C = [MXAA,MXBB,MXCC; JJJ,LKLKLKL,0]
是一种方法做,在C
感谢
你将需要创建指针数组以?指针t o元素类型(在你的情况下是指向char
的指针)。
您需要考虑的问题是每个阵列都是不同的大小;所以我建议你存储数组的大小,否则你会很快结束运行数组的界限。这听起来有点像自定义类型。
typedef {
int n;
char **strArr;
} stringArray;
stringArray *str2d;
str2d = (stringArray*) malloc(2*sizeof(stringArray));
str2d[0].n=3;
str2d[0].strArr = (char**)malloc(3*sizeof(char*));
str2d[0].strArr[0] = "MXAA";
str2d[0].strArr[1] = "MXBB";
str2d[0].strArr[2] = "MXCC";
str2d[1].n = 2;
str2d[1].strArr = (char**)malloc(2*sizeof(char*));
str2d[1].strArr[0] = "JJJ";
str2d[1].strArr[1] = "LKLKLKL";
如果你想访问一个元素,你使用类似的寻址 - 但检查你是否在界限内!
我故意以非常明确的步骤做到这一点,希望这可以使原理清楚。有更好的方法来做到这一点,但他们更晦涩(或不是“标准C”)