0

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

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

A=["MXAA', "MXBB", "MXCC"] B=["JJJ", "LKLKLKL"]

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

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

是在C中做到这一点的一种方法吗?

谢谢

4

1 回答 1

0

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

于 2013-06-04T03:10:16.390 回答