我有一个非常非常简单的函数,它只是将 char 转换为 char*,它表示 char 的二进制值,其中 0 和 1 作为字符。
char* stringToBin(char symbol) {
int pos = 0;
int value = (int) symbol;
int rest;
char* result = (char*) malloc(sizeof(char) * 9);
while(value > 0) {
if(value % 2 == 0) {
result[7-pos] = '0';
}
else {
result[7-pos] = '1';
}
pos++;
value = value / 2;
}
while(pos < 8) {
result[7-pos] = '0';
pos++;
}
result[8] = '\0';
puts(result);
puts(strlen(result));
return result;
}
我的问题是我无法打印 char* 的长度。打印整个 char* 效果很好,但不计算大小。我总是遇到分段错误。我认为问题很简单,但我现在没有得到它。所以请给我缺少的提示;)