代码之家  ›  专栏  ›  技术社区  ›  Deepak Sharma

如何在Swift中打印指针内容

  •  1
  • Deepak Sharma  · 技术社区  · 7 年前

    我试图打印原始指针指向的指针的内容,但当我打印或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
            }
        }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Martin R    7 年前

    pixel 是指向 UInt32 ,以便打印指向 必须取消引用的值:

    print(pixel.pointee)
    

    请注意,递增指针是以 指向的值

    pixel = pixel + kBytesPerPixel
    

    将地址递增 4 * kBytesPerPixel 字节,其中 可能不是你想要的。

    推荐文章