c++ - increment pointer within if (pointer) condition -
i'm reading c++ code, developer uses kind of pattern:
float *_array; //... while (expression) { if (_array) { // ... _array += 1; } else { // ... } }
the outer while loop terminate independently _array points to. question if (_array)
condition , incrementation within clause.
i first thought should check if pointer "ran out of" array, not seem case. tested simple snippet:
float *p = new float[5]; int = 0; (i = 0; < 10; i++) { if (p) { std::cout << "ok\n"; } else { std::cout << "no\n"; } p += 1; }
this print 10 times "ok". if (pointer)
evaluates true
if pointer exceeded defined array length.
but else purpose of if (pointer)
in context?
its purpose check whether pointer _array
pointing null
or not, i.e. check if null
pointer.
new
throws std::bad_alloc
exception , therefore no need check null
. in case of malloc, calloc, realloc
or new(std::nothrow)
, if allocation fails return null
. in such case need check null
.
Comments
Post a Comment