如果要设置一个“大于或等于100”和“小于或等于200”的int变量,该怎么做?
如果我想将最大字符串长度设置为1024,但是如何设置最小字符串长度,我听说就像“ char a [1024]”一样。
答案 0 :(得分:1)
1。如果要设置一个“大于或等于100”和“小于或等于200”的int变量,怎么办?
C整数对象的范围由其类型的常量(例如INT_MIN, UCHAR_MAX, LLONG_MIN
)设置。用户无法选择100或200。
2。如果我想将最大字符串长度设置为1024,但是如何设置最小字符串长度,我听说就像“ char a [1024]”一样。
首先:不按1:来自strlen(a)
的合法可能值为[0 ... 1023],而不是1024。
在C中,最大和最小长度是不可控制的,整个可设置的极限。需要明智地编写代码,以免超出目标数组范围(在OP示例中,空字符为1023 + 1)
在使用各种方法填充数组时,代码可能要格外小心。如果目标数组不足,则代码可能需要采用其他路径。
int len = snprintf(a, sizeof a, "%d %s", some_int, some_string);
if (len < 0 || (unsigned) len >= sizeof a) {
puts("Encoding error, or buffer is too small");
// Destination was likely too small.
}