char *getInput2(char *param) {
int data_len;
data_len=atoi(getenv("CONTENT_LENGTH"));
char input[9];
fgets(input, 9, stdin);
return strdup (input+6);
}
和
char *getInput2(char *param) {
char input[9];
fgets(input, 9, stdin);
return strdup (input+6);
}
为什么上述函数的输出不同?
例如post值是 MAX_N = 20
第一个函数输出:“x_n” 第二个功能输出:“20”
答案 0 :(得分:1)
此功能相同,首先getInput2
执行更多操作,但此计算的结果在将来的说明中不可用。
但是当CONTENT_LENGHT
不存在时,您atoi
获取NULL
并且她的代码从Debug Assertion停止。
/* validation section */
if (endptr != NULL)
{
/* store beginning of string in endptr */
*endptr = (char *)nptr;
}
_VALIDATE_RETURN(nptr != NULL, EINVAL, 0L);
_VALIDATE_RETURN(ibase == 0 || (2 <= ibase && ibase <= 36), EINVAL, 0L);