【发布时间】:2018-05-16 23:29:07
【问题描述】:
例如,
char * integerToString(void);
int main() {
char *myString;
do {
myString = integerToString();
} while (myString == (char *)-1); // worked as intended
free(myString);
return 0;
}
char * integerToString(void) {
int userInput;
printf("Enter an integer: ");
scanf("%d", &userInput);
if (userInput < 0 || userInput > 99)
return (char *)-1; // what happens here?
char *myString = (char *)malloc(sizeof(char) * 2);
myString[0] = (int)floor(userInput/10.0) + '0';
myString[1] = userInput%10 + '0';
return myString;
}
并且程序按预期工作,但是当您将整数值(没有将整数分配给变量)输入字符指针时究竟会发生什么?这个程序会一直有效吗? 谢谢。
【问题讨论】:
-
这里不直接使用
snscanf有什么原因吗?