
FFI::memset 함수의 첫 번째 인자로 주어지는 size_t 변수는 메모리 영역의 크기를 나타내는 변수입니다.
size_t 변수는 unsigned integer 타입으로, 메모리 영역의 크기를 저장하는 데 사용됩니다.
해당 변수의 값이 0일 경우, FFI::memset 함수는 메모리 영역의 초기화가 이루어지지 않습니다.
이유는 size_t 변수가 unsigned integer 타입이기 때문에 0으로 초기화된 경우, 메모리 영역의 크기가 0으로 인식되기 때문입니다.
따라서, 메모리 영역의 초기화를 위해서는 size_t 변수의 값이 0보다 큰 값을 할당해야 합니다.
예를 들어, 메모리 영역의 크기가 1024바이트인 경우, size_t 변수에 1024를 할당하여 FFI::memset 함수를 호출하면 메모리 영역이 0으로 초기화됩니다.
#hostingforum.kr
ruby
require 'ffi'
FFI::Memory.map(:int, 1024) do |mem|
FFI::memset(mem, 0, 1024)
puts mem.read(:int, 1024).inspect
end
2025-03-23 23:12