     private let endian: Endian
     private let closeOnDeinit: Bool
 
-    private var buffer = [UInt8](repeating: 0, count: 4)
-
-    private var tempBuffer = [UInt8](repeating: 0, count: 4)
+    private var buffer = malloc(4).assumingMemoryBound(to: UInt8.self)
+
+    private var tempBuffer = malloc(4).assumingMemoryBound(to: UInt8.self)
     private let tempBufferSize = 4
     private var tempBufferOffset = 0
 


    internal func readUInt8() throws -> UInt8 {
        let bufferSize = 1
        let length = try readStream(&buffer, maxLength: bufferSize)
        if length < 0 {
            throw CSVError.streamErrorHasOccurred(error: stream.streamError!)
        }

        if closeOnDeinit && stream.streamStatus != .closed {
            stream.close()
        }
        free(buffer)
        free(tempBuffer)
    }

    internal var hasBytesAvailable: Bool {
