Out of index C/C++ -
Out of index C/C++ -
a typical declaration array in c/c++ is:
type name [elements];
where type valid type (such int, float...), name valid identifier , elements field (which enclosed in square brackets []), specifies length of array in terms of number of elements.
so declare array of int have 2 elements
int a[2]; a[3] =4;
why not throw exception?
out of bounds checking used higher level language java. in c/c++ not done default. gives little performance nail check bounds of array , hence c rationale have manually in case need offer best possible performance. c++ stl containers vector
back upwards at()
operation perform bound-checking , since can overload []-operator can enable bound-checks array-style access.
if array
raw pointer statement array[i]
comes downwards in c/c++:
*(array + i)
which simple add-on of address + offset. next statements equivalent:
*(array + i), *(i + array), array[i], i[array]
what happens internally take address stored in pointer, add together i-times size of array type , de-reference address.
so happens if specify index bigger array, access memory not belong array. read random info next array in memory. typical source of buffer-overflows if address written to. if memory trying access not belong process, segfault.
c++ c arrays indexing
Comments
Post a Comment