我创建了带有硬编码值的字符串数组,如下所示:
char dev_string[3][3][15] = {{"item01","item02","item03"},
{"item11","item12","item13"},
{"item21","item22","item23"},
};
int main()
{
printf("string 00 = %s \n",dev_string[0][0]);
printf("string 01 = %s \n",dev_string[0][1]);
printf("string 02 = %s \n",dev_string[0][2]);
printf("string 10 = %s \n",dev_string[1][0]);
printf("string 11 = %s \n",dev_string[1][1]);
printf("string 22 = %s \n",dev_string[1][2]);
printf("string 20 = %s \n",dev_string[2][0]);
printf("string 21 = %s \n",dev_string[2][1]);
printf("string 22 = %s \n",dev_string[2][2]);
return 0;
}
目的是在最后用C创建一个字典。而不是硬编码我想要一个基于指针的实现,因为将来我必须继续添加这个字符串的项目。 更多我想使用一些索引访问这些字符串,我认为我可以通过提供行号(0,1或2)。 我没有用指针做正确的方法。使用指针(单个或指向二维的指针)的其他方便方法是什么?
答案 0 :(得分:0)
char (*sensor_string)[3][3];
for (int i=0; i < 3; ++i) {
for (int j=0; j < 3; ++j) {
sensor_string[i][j] = malloc(sizeof(*sensor_string[i][j]) * (strlen("item") + 3));
strcpy(sensor_string[i][j], "item");
char* num = malloc(sizeof(*num) * 3);
sprintf(num, "%d", (i*3 + j + 1));
strcat(sensor_string[i][j], num);
}
}