当前我正在尝试取一个二进制字符串,比如说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