Vector 如何在C中存储矩阵中多个数组的内容

Vector 如何在C中存储矩阵中多个数组的内容,vector,matrix,transfer,Vector,Matrix,Transfer,我试图将不同向量的内容存储在矩阵中 向量的长度不同,它们都是字符串。让我们说: A=[“MXAA”、“MXBB”、“MXCC”] B=[“JJJ”,“lkl”] 因此,新矩阵应如下所示: C=[MXAA,MXBB,MXCC;JJJ,LKL,0] 这是C语言中实现这一点的一种方法吗 谢谢您需要创建一个指向元素类型指针的指针数组(在您的例子中是指向char的指针) 您需要考虑的问题是,每个数组的大小不同,所以我建议您存储数组的大小,或者很快就会在数组的边界上运行。这听起来有点像自定义类型。 type

我试图将不同向量的内容存储在矩阵中

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

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

因此,新矩阵应如下所示:

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

这是C语言中实现这一点的一种方法吗


谢谢

您需要创建一个指向元素类型指针的指针数组(在您的例子中是指向
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”)