如何在 Swift 中打印指针内容
How to print pointer contents in Swift
我正在尝试打印原始指针指向的指针的内容,但是当我打印或 NSLog 时,我得到的指针值比指针指向的内存内容要多。如何打印指针指向的内存内容?下面是我的代码:
let buffer = unsafeBitCast(baseAddress, to: UnsafeMutablePointer<UInt32>.self)
for row in 0..<bufferHeight
{
var pixel = buffer + row * bytesPerRow
for _ in 0..<bufferWidth {
// NSLog("Pixel \(pixel)")
print(pixel)
pixel = pixel + kBytesPerPixel
}
}
pixel
是指向 UInt32
的指针,以便打印指向的
您必须取消引用它的值:
print(pixel.pointee)
请注意,递增指针是以步幅为单位完成的
指向的值,所以你的
pixel = pixel + kBytesPerPixel
将地址递增 4 * kBytesPerPixel
字节,这
可能不是你想要的。
我正在尝试打印原始指针指向的指针的内容,但是当我打印或 NSLog 时,我得到的指针值比指针指向的内存内容要多。如何打印指针指向的内存内容?下面是我的代码:
let buffer = unsafeBitCast(baseAddress, to: UnsafeMutablePointer<UInt32>.self)
for row in 0..<bufferHeight
{
var pixel = buffer + row * bytesPerRow
for _ in 0..<bufferWidth {
// NSLog("Pixel \(pixel)")
print(pixel)
pixel = pixel + kBytesPerPixel
}
}
pixel
是指向 UInt32
的指针,以便打印指向的
您必须取消引用它的值:
print(pixel.pointee)
请注意,递增指针是以步幅为单位完成的 指向的值,所以你的
pixel = pixel + kBytesPerPixel
将地址递增 4 * kBytesPerPixel
字节,这
可能不是你想要的。