Speicherverbrauch mit Zeiger ermitteln
-
Hallo,
ich habe zwei Zeiger
Type* start, end;Wie kann ich den gesamten Speicherverbrauch von start bis ende ermitteln?
-
So?
assert( start <= end ); (end-start+1)*sizeof(T);
-
oder meinst du so?
std::cout << std::size_t(end-start) << "Bytes" << std::endl;bb
-
Siassei schrieb:
ich habe zwei Zeiger
Type* start, end;Das sind keine zwei Zeiger. Es sei denn Type ist ein typedef-Name für einen Zeiger. Du meinst wahrscheinlich
Type *start, *end;Gruß,
SP
-
David_pb schrieb:
So?
assert( start <= end ); (end-start+1)*sizeof(T);Das ist keine gute Idee. Bei einer leeren Range müsste
end == start-1gelten, was durch dasassert()verhindert wird.Um der üblichen Konvention zu folgen, bei der end-Zeiger hinter die Range zeigen, ist
(end-start) * sizeof(Type)korrekt. So erhält man auch im Fallstart == enddie richtige Grösse 0.