當前我正在嘗試取一個二進制字符串,比如說100101010,並將其拆分爲三個組,因此10010110。以下是我迄今爲止所寫的內容,由於某些原因,它僅適用於打印第一個組,然後在此之後沒有任何內容。將字符串拆分爲數組C
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
int i;
char *line = NULL;
free(line);
scanf("%ms", &line);
printf("%d\n", strlen(line));
for(i=0; i < strlen(line); ++i) {
if (i % 3 == 0){
sprintf(line, "%c%c%c", line[i],line[i+1],line[i+2]);
printf(line);
}
}
}
你爲什麼要釋放一個NULL指針? – John3136
這並不是一件可怕的事情。如果您釋放空指針,則實際上不會發生任何事 – Chirality
的確,我知道它是無害的,但是在免費說'line = NULL'之前的那一行,所以它沒有意義。爲什麼包括無意義的代碼 - 它使真正的問題難以發現......順便說一句 - 你實際上並沒有在最終釋放線路,所以你有一個空閒的地方你不需要它,並且在你做的地方缺少一個; - ) – John3136