【发布时间】:2021-11-12 03:27:00
【问题描述】:
我想打印出包含 mips 寄存器的二维 char 数组。我想分别打印每个寄存器。但是我当前的代码将所有寄存器一起打印出来。有没有更好的方法来解决这个问题,比如使用字符的双指针数组?
My code so far:
char reg[][3] = {
{'$', 's', '0'},
{'$', 's', '1'},
{'$', 's', '2'},
{'$', 's', '3'},
{'$', 's', '4'},
{'$', 's', '5'},
{'$', 's', '6'},
};
int main(void){
for(int i = 0; i < sizeof(reg); i++)
{
printf("%s\n", reg[i]);
}
return 0;
}
My output:
$s0$s1$s2$s3$s4$s5$s6
$s1$s2$s3$s4$s5$s6
$s2$s3$s4$s5$s6
$s3$s4$s5$s6
$s4$s5$s6
$s5$s6
$s6
But I want my output to be like this:
$s0
$s1
$s2
$s3
$s4
$s5
$s6
【问题讨论】:
-
%s需要一个 NUL 终止字符串。您的数组是字符序列而不是字符串。将数组第二维大小增加 1 以确保每个条目都以 0 结尾。另外,请注意您可以使用char reg[][4] = { "$s0", "$s1", ...}