我正在尝试将不同向量的内容存储在矩阵中。
向量的长度不同,它们都是字符串。让我们说:
A=["MXAA', "MXBB", "MXCC"] B=["JJJ", "LKLKLKL"]
所以新的矩阵应该如下所示:
C= [MXAA, MXBB, MXCC;JJJ, LKLKLKL, 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”)