Closed. This question is off-topic. It is not currently accepting answers. Learn more。
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
三年前关闭。
所以我要做一些字符串操作,但是当我试图打印出指针在时间上指向什么时,我得到了非常奇怪的输出。
这是我输入hello时的输出
len=6,mystring=hello
让我们标记这个字符串
行=0标记=0
ptr=hh
这双鞋怎么了?
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
三年前关闭。
所以我要做一些字符串操作,但是当我试图打印出指针在时间上指向什么时,我得到了非常奇怪的输出。
#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;
}
这是我输入hello时的输出
len=6,mystring=hello
让我们标记这个字符串
行=0标记=0
ptr=hh
这双鞋怎么了?
最佳答案
这就是你要打印的。您正在打印ptr = <ptr[0]>h
。您的h
语句中%c
之后还有一个额外的printf()
。您可能想使用:
printf("ptr = %c\n", ptr[0]);
关于c - 为什么我的指针输出怪异? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40223743/