首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试打印char*的内容时出现分段错误

尝试打印char*的内容时出现分段错误
EN

Stack Overflow用户
提问于 2012-04-10 08:40:50
回答 2查看 1.4K关注 0票数 0

我有下面这段代码:

代码语言:javascript
复制
    FILE *fpa;
    fpa = fopen(argv[2], "r");
    if (fpa == NULL) {
     printf("Error: could not open seqA file!\n");
     exit(0);
    }

    unsigned int N_a;
    fscanf(fpa, "%d\n", &N_a);
    char *seq_a = malloc((N_a+1) * sizeof(char *));
    strcpy(seq_a,"");
    fscanf(fpa, "%s\n", seq_a);
    fclose(fpa);

    for(i=0;i<N_a;i++)
      printf("%s", seq_a[i]); ---> SEG FAULT
    printf("\n");

我在printf语句中遇到了分段错误。argv2是一个文件,其内容为:

代码语言:javascript
复制
        5
代码语言:javascript
复制
        ABCBB 

知道我可能在哪里犯了错吗。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-10 08:45:41

char *seq_a = malloc((N_a+1) * sizeof(char *));

应该是:char *seq_a = malloc((N_a+1) * sizeof(char));

如果要打印每个字符,请使用%c

代码语言:javascript
复制
  printf("%c", seq_a[i]);
票数 1
EN

Stack Overflow用户

发布于 2012-04-10 08:45:42

由于您要打印字符,因此您的printf应使用格式说明符%c。不是%s%s需要一个指针,因此它将字符值视为内存中的一个位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10081650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档