我开始学习C并对数组有疑问。
这里我有一个二维简单的字符数组:
char memory[100][6];
...
// populate indexes
在这里我尝试打印出第一行:
puts(memory[0]);
这是输出。为什么每一行都打印出来?
00P00300P10404P1ZZZZ0000ZZ0010
我来自Java,如果你运行相同的代码,你将只获得第一行。我错过了什么,或者这只是C处理数组的方式?如果是这样,我怎么才能获得第一行?
答案 0 :(得分:0)
puts
函数严格用于C风格的字符串。如果你传递一个指向C风格字符串以外的东西的指针,很可能会产生垃圾。你怎么期望它知道要输出多少个字符?