私はいくつかの文字列の操作をしようとしていますが、私のポインタが時刻に指しているものをプリントアウトしようとすると、本当に奇妙な出力が得られます。私のポインタから奇妙な出力が得られるのはなぜですか?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
size_t n = 10;
char *mystring = malloc(10);
int line = 0;
int tokens = 0;
char *ptr;
if(mystring==NULL){
fprintf(stderr, "No memory\n");
exit(1);
}
while(getline(&mystring, &n, stdin)>0){
printf("len = %lu, mystring = %s\n", strlen(mystring), mystring);
printf("let's tokenize this string\n line = %d tokens = %d\n", line, tokens);
ptr = mystring;
printf("ptr = %ch\n", ptr[0]);
}
return 0;
}
これは
のは、この文字列をトークン化させ ライン= 0のトークン= 0
PTR =ハロー= MYSTRING、私はハロー= 6でlen
を入力したときに、私の出力は次のようになりますhh
二重のhhは何ですか?
私はあなたが '%c'を探していると信じています。最初のHは 'hello'の最初の文字から、2番目の文字は' printf'の 'h'からのものです。 – duncan
私は馬鹿のように感じます。それを私に指摘していただきありがとうございます –
私たちの心配はありません! – duncan