我遇到了麻烦sscanf
。为了检查它,我制作了一个简单的文件,所以当我编译它时:
#include <stdio.h>
main(){
char *a;
/* */
char *s = "GET /something HTTP/1.1\r\n";
printf("sscanf: %d\n", sscanf(s, "GET %s HTTP", a));
printf("a: %s\n", a);
/* */
printf("sscan: %d\n", sscanf("GET /more HTTP/1.1\r\n", "GET %s HTTP", a));
printf("a: %s\n", a);
}
我得到正确的输出:
sscanf: 1
a: /something
sscan: 1
a: /more
但是当我在空评论之间唱评论行时,我得到:
sscan: 0
a: (null)
问题1:怎么会这样?
还有一点:如果我写char *a = NULL
,我会得到:
sscanf: 0
a: (null)
sscan: 0
a: (null)
问题2:为什么?