Using arrays : Dereferencing Non-Pointers in C: n-dimensional arrays on newest questions tagged arrays – Stack Overflow

I was wondering if it is possible to reach the lowest level (the non-pointer level) of an n-dimensional array in C by conditionally dereferencing different layers of pointers until you reach a layer that is not pointers, as in the following example:

if(i_is_a_pointer){
  for(i = 0; i < some_given_length; i++){
    if((*i)_is_a_pointer){
      for(j = 0; j < some_given_length; j++){
        if((**i)_is_a_pointer)...etc.
      }
    }
  }
}

which would delve through the array either until it hit a non-pointer or exhausted the final block of code written. How would one go about, in C, determining if the thing is a pointer (I would guess that sizeof would work, if the target non-pointer were of a different size than the memory address), and would the statement **i be a compile-time or run-time error if *i were not itself a pointer?

Additionally, which languages and techniques do you use/would you recommend for traversing the non-array elements of an n-dimensional array, where n is determined at run-time?

See Answers


source: http://stackoverflow.com/questions/11057216/dereferencing-non-pointers-in-c-n-dimensional-arrays
Using arrays : using-arrays



online applications demo