分段错误增加数组索引?

时间:2012-05-16 21:17:53

标签: c

我正在尝试做作业

在我可以使用此行没有任何问题且没有分段错误之前我不知道为什么它在编译我的代码后现在不起作用。

这是来自main()

的调用方式
rb = ascii(back_data[i], phr);

这是数据在main()

中的定义方式
char phr[41];

int ascii(const char back[ ], char data[ ]){
  int l = 0, n = 0, i = 0, co = 0;
  char binary_holder[8], char_set;

  binary_holder[0] = '\0';

  l = strlen(back);

  for (i = 0; i <= l; i++){

    if (back[i] == '0' || back[i] == '1' && co < 8){

        binary_holder[co] = back[i];
        co++;
    }
    if(co == 8){

      binary_holder[8] = '\0';
      co = 0;
    }

    char_set = strtol(binary_holder, NULL, 2);

    if (char_set > 31 && char_set != 127){
        data[n++] = char_set;   
    }


  }

我忘了提到问题就在这里,我无法弄清楚为什么

data[n++] = char_set;

1 个答案:

答案 0 :(得分:3)

ascii(back_data[i], phr);中看起来第一个arg是char而不是指向char的指针。这个非指针传递给strlen() - 繁荣。

相关问题