是否存在這樣可以避免陣列的overwritting什麼辦法?我在執行我將數據寫入到緩存/固定大小的數組說buff[100]
和將要使用buff[100]
每當我想O/P數據我會寫信給buff[100]
(即會再次使用相同的buff[100]
)時,下一次我使用buff[100]
它應該追加數據。避免覆蓋在陣列
Q
避免覆蓋在陣列
1
A
回答
2
維護索引到陣列。當您要寫入的數據的長度加上索引大於或等於100時,寫出緩衝區和數據。否則,將數據移入該偏移處的緩衝區,並將數據的長度添加到索引。
例如,假設以下變量範圍:
#define BUFFER_LENGTH 100
char buffer[BUFFER_LENGTH];
int buffer_index;
int output_fd;
你可以有這樣的功能:
void write_buffered(char *data, int data_length)
{
if (data_length + buffer_index >= BUFFER_LENGTH) {
write(output_fd, buffer, buffer_index);
write(output_fd, data, data_length);
buffer_index = 0;
return;
}
memcpy(&buffer[buffer_index], data, data_length);
buffer_index += data_length;
}
這是寫C語言風格,因爲我知道的C好過C++,但基本原則是健全的。顯然,避免使用全局變量並將write()
調用更改爲您正在使用的任何調用。
0
既然你提到C++,你爲什麼不使用一個std ::向量或類似容器?這將是多更簡單,更容易出錯。
相關問題
- 1. 避免覆蓋列表的值 - Python(Pandas)
- 2. 避免CSS覆蓋引導
- 3. 避免覆蓋GAE版本
- 4. 避免被css覆蓋
- 5. 避免404頁面覆蓋
- 6. Spark避免分區覆蓋
- 7. 避免覆蓋斑點AZURE
- 8. 避免在NetBeans中覆蓋文件
- 9. 避免在WordPress中覆蓋htaccess
- 10. mysql_fetch_assoc覆蓋陣列
- 11. 陣列被覆蓋
- 12. JavaScript:覆蓋陣列
- 13. 如何避免AndoridManifest與Maven覆蓋
- 14. 避免gulp.dest並覆蓋文件?
- 15. 如何避免覆蓋文件
- 16. 如何避免覆蓋字典追加?
- 17. 如何避免覆蓋的SqlSessionFactory
- 18. 避免覆蓋ArrayList中的對象
- 19. 避免意外的固件覆蓋
- 20. 避免覆蓋中的異步問題
- 21. 的Python避免覆蓋變量
- 22. 如何避免覆蓋嵌套屬性?
- 23. F#避免主動模式覆蓋
- 24. 繼承時避免覆蓋成員
- 25. 如何「保存」列表或如何避免列表被覆蓋?
- 26. 避免陣列複製
- 27. 如何避免創建日期列覆蓋數據時更新
- 28. 這條線覆蓋陣列
- 29. Ember js pushObject覆蓋陣列
- 30. 覆蓋陣列位置
如果你把時間每個句子後,我們也許能更好地瞭解您。完整的句子和良好的拼寫確實有幫助,特別是當你尋求幫助時。爲什麼人們會花更多的精力回答你問過的問題? – 2010-11-19 05:08:20
代碼請(請格式化) – 2010-11-19 05:14:42