2013-06-03 48 views
0

我试图在矩阵中存储不同向量的内容。如何在矩阵中存储多个数组的矩阵在C中

向量长度不同,它们都是字符串。让说:

A = [“MXAA”, ”MXBB“, ”MXCC“] B = [ ”JJJ“, ”LKLKLKL“]

所以新的矩阵应如下所示:

C = [MXAA,MXBB,MXCC; JJJ,LKLKLKL,0]

是一种方法做,在C

感谢

回答

0

你将需要创建指针数组以?指针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”)