实施例
int a[2] = {1,2};
char b[5] = { 'A', 'B', 'C', 'D' };
是否可以组合两个数组并创建一个2D数组并获得结果:
1A 1B 1C 1D
2A 2B 2C 2D
我尝试创建一个2D数组,如:
char c[2][4]={{'1A','1B','1C','1D'},{'2A','2B','2C','2D'}}
但它给了我错误。
答案 0 :(得分:0)
'1A'在语法上不正确。单引号用于表示字符文字,只能包含一个字符。
如果你想在运行时将a和b组合成一对数组,这里有一些可能有用的草图:
int a[2] = {1,2};
char b[5] = { 'A', 'B', 'C', 'D' };
char *pairs[2][5];
for(int i = 0; i < 2; i++)
for(int j = 0; j < 5; j++) {
pairs[i][j] = (char*)malloc(2 * sizeof(char));
sprintf(pairs[i][j], "%d%c", a[i], b[j]);
}
如果你只是想初始化一对数组,那么这应该有效:
char* pairs[2][5] = {{"1A", "1B", "1C", "1D"}, {"2A", "2B", "2C", "2D"}};