ฉันกำลังจัดการกับรหัสที่ฉันไม่ได้เขียน ฉันมีคำสั่งนี้:
// p is type of std::unique_ptr<uint8_t[]>
if (p < 0) { /* throw an exception */ }
ดังนั้นp < 0
ในบริบทนี้หมายความว่าอย่างไร
บนหน้าเอกสารผมเชื่อว่ากรณีของฉันเป็น16) y < nullptr
ที่เป็น0
nullptr
แต่มันจะทำอะไร?
p==-1
เป็นหมายเลขอ้างอิงที่ไม่ถูกต้อง เนื่องจาก2^64
เป็นจำนวนมากไร้สาระใด ๆ ที่p
เป็นบวกเสมอ ดังนั้นp<0
ตรวจสอบหมายเลขอ้างอิงที่ไม่ถูกต้องของ WINAPI นี่ไม่ใช่รหัสที่ดี
uint8_t*
(หรือแม้กระทั่งอาร์เรย์uint8_t
)? ฉันคิดว่าพวกvoid*
เขาใช่มั้ย
void*
พวกเขามีมาโคร HANDLE_PTR หรือบางสิ่งซึ่งโดยทั่วไปจะเป็นlong*
iirc