У меня есть большой массив символов, который заполняется 0. Я читаю входящий файл из сокета и размещаю его содержимое в буфере. Я не могу написать буфер со всеми '\ 0 в нем, поэтому я выделяю новый буфер с правильным размером и записываю. Я использовал этот подход, чтобы сделать это:Удалить завершающий NULL-терминатор
int i = 0;
while(buf[i] != '\0'){
i++;
}
char new[i];
while(i){
new[i] = buf[i];
i--;
}
new[0] = buf[0];
Хотя этот подход работает, это не похоже, самый умный или самый элегантный способ. Каков наилучший способ удалить все конечные символы NULL из массива символов?
Что вы подразумеваете под "удалить"? Все элементы массива имеют значение. Возможно, 'realloc' - это то, что вам нужно? –
Я не думаю, что вы вполне поняли. Вы можете написать из буфера, который у вас есть, вам просто нужно знать его активную длину. –
Я не имею в виду remove, я создаю новый буфер с разной длиной, который будет содержать файл. –