0
我有一個非常簡單的函數,它只是將char轉換爲一個char *,它表示char和char的二進制值,字符爲0和1。strlen(char *)的分割錯誤,但char * IS終止
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 *的長度。打印整個字符*完美,但不計算大小。我總是得到分段錯誤。我認爲這個問題很簡單,但我現在沒有明白。所以請給我缺少的提示;)
請構建一個完整的[SSCCE測試用例](http://sscce.org),包括導致問題的輸入。 –
標準提示:可以編譯所有警告和調試信息(例如Linux上的gcc -Wall -g)並使用調試器(例如gdb) –
值也許是負值? –