我正在尝试做作业
在我可以使用此行没有任何问题且没有分段错误之前我不知道为什么它在编译我的代码后现在不起作用。
这是来自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;
答案 0 :(得分:3)
在ascii(back_data[i], phr);
中看起来第一个arg是char而不是指向char的指针。这个非指针传递给strlen()
- 繁荣。