gpt4 book ai didi

c++ - 为什么我们不应该在 sprintf 中包含最后一个数组元素?

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:48 25 4
gpt4 key购买 nike

我的代码如下所示,最后一条语句只有在我使用 l_plates[i] 时才有效。在下面的情况下,它会抛出一个错误“传递‘sprintf’的参数 1 使指针来自没有强制转换的整数”如果我也需要 N 的另一个 for 循环怎么办。如果我使用 sprintf,我应该使用额外的元素吗?请解释。提前致谢。

char type, letters[4], digits[5];
char l_plates[M][N];

for (i=0; i<M; i++) {
scanf(" %c", &type);
scanf("%3s", letters);
scanf("%4s", digits);
sprintf(l_plates[i][N], "%s %s %c", letters, digits, type);
}

最佳答案

我在这里看到两个问题。首先,sprintf 的第一个参数应该是 char*,而不是 char,这是您要发送给它的内容。

其次,大小为 N 的数组的索引从 0N - 1。通过尝试访问元素 N,您将跳出数组。最后一个元素是 [N - 1]

关于c++ - 为什么我们不应该在 sprintf 中包含最后一个数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com