で困ってい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 : なぜですか?