У меня есть следующий код, который должен печатать массив из 3072 целых чисел:
for(int q=0; q < 3072; q++) printf("%x", band->GetData(q));
можно предположить, что он напечатает 3072 целых числа, однако я получаю 3075 целых чисел с 3, вероятно, мусорными в конце.Печать в файл с использованием этого кода
fp=fopen("filename", "w");
fwrite(band->GetBuffer(), sizeof(int), 3072, fp);
fclose(fp);
заканчивается почти одинаково, за исключением того, что в конце есть 3 дополнительных байта.Использование разных массивов дает разную длину мусора.Я хотел бы спросить, почему это происходит и действительно ли это мусор.Спасибо.
int GetData(unsigned int pos) const { ASSERT(pos < m_size); return m_data[pos]; }
int* GetBuffer() { return m_data; }