Привет, мою проблему довольно сложно объяснить, поэтому я просто опубликую свой раздел кода здесь и объясню проблему на примере.
Этот код имеет большой и маленький массив, где большой массивразбивается на маленькие части, сохраняется в маленьком массиве, а маленький массив выводит свое содержимое на экран.
После этого я освобождаю выделенную память для маленького массива и снова инициализирую ее следующей частью большого массива:
//this code is in a loop that runs until all of the big array has been copied
char* splitArray = new char[50];
strncpy(splitArray, bigArray+startPoint, 50); //startPoint is calculated with every loop run, it marks the next point in the array for copying
//output of splitArray on the screen here
delete splitArray;
//repeat loop here
Теперь моя проблема заключается в том, что в выводимой строке всегда есть несколько случайных символов наконец.например, "some_characters_here...last_char_hereRANDOM_CHARS_HERE".
после более глубокого изучения я обнаружил, что на самом деле splitArray имеет размер не 50, а 64, с нулевым терминатором в 64. Поэтому, когда я копирую из bigArray в splitArray, все еще остаются14 случайных символов, оставшихся после настоящей строки, и, конечно, я не хочу их выводить.
Простым решением было бы вручную установить нулевой терминатор в splitArray на [50], но затем программа не удаляетсяснова массив.
Может кто-нибудь помочь мне найти решение для этого?Предпочтительно с некоторым примером кода, спасибо.