Пара советов:
1
Завершение \0
подразумевается в любой строке двойных кавычек, и, добавив дополнительный в конце, вы получите два. Следующие две инициализации идентичны:
char str1[6] = "Hello\0";
char str2[6] = { 'H', 'e', 'l', 'l', 'o', '\0', '\0'};
So
char drumReadString[] = "Hello";
достаточно, и указание размера массива необязательно, когда он инициализируется следующим образом, компилятор определит требуемый размер (6 байт).
2
При написании строки вы можете просто написать все символы за один раз (вместо того, чтобы писать по одному размеру sizeOfString раз):
fwrite(drumCString, sizeOfString, 1, fp);
3
Даже если это не так часто встречается в обычном настольном компьютере, malloc может вернуть NULL, и вы выиграете от привычки всегда проверять результат, потому что во встроенных средах получение NULL не является вероятным результатом.
char *drumReadString = malloc(sizeof(char) * stringLength);
if (drumReadString == NULL) {
fprintf(stderr, "drumReadString allocation failed\n");
return;
}