Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗?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/

10-11 23:23
查看更多