我可能在這裏丟失了一些東西。我需要存儲新分配的內存塊的指針地址。存儲指針地址和std :: adressof
我這樣做:
void* buffer = _aligned_malloc(4096,4);
assert(buffer);
//save its original address:
void* initialAddress = (void*) std::addressof(buffer);
的initialAddress持有多緩衝區的不同地址。
只有當我分配緩衝區指針我收到相同的地址(這當然是發生正確的事):
initialAddress = buffer;
那麼,爲什麼的std :: addressof(緩衝區)顯示不同的地址?我正在使用VS2012進行調試。可能是指針的地址而不是緩衝區的地址?
@jrok忘了提及。 – 2014-12-04 12:41:05
爲什麼任何人都想使用std :: addressof? – 2014-12-04 12:55:41
@MichaelIV因爲'operator&'可能會因某種類型而過載。 'std :: addressof'避免了這種過載。 – 2014-12-04 12:56:27