C array dimension problem -
i have array 1653 lines this:
#define num_polygon_object_vertex 1653 * 3 static const float vertices[num_polygon_object_vertex] = { {{2.4f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f} }, ... };
which right value num_polygon_object_vertex
?
thanks
update
don't have idea programming c , paid me -3 points. unbelievable
second update i'm getting following error:
warning: excess elements in scalar initializer
at least imo, right thing leave num_polygon_object_vertex
out entirely:
static const float vertices[] = { {{2.4f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f} }, ... };
the compiler compute size automatically based on initialization data. compute size afterward, can use like:
#define elements(array) (sizeof(array)/sizeof(array[0]))
note, however, have doesn't seem multi-dimensional array @ (nor c's closest equivalent, array of arrays). since have 1 set of brackets, have single-dimension array. if want create multi-dimension array, like:
static const float vertices[][3] = { {{2.4f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f} }, ... };
note added [3]
-- tells compiler want array of arrays of 3 floats apiece. mean vertices[0] entire array of 3 floats make first vertex, , vertices[0][1] (at least conventionally) x
value of first vertex.
if define array way, can still use elements
macro above -- since vertices[0]
complete vertex instead of single float
, number of elements number of vertices instead of number of floats.
based on braces you've included, may want be:
static const float lines[][2][3] = { /* ... */ };
right bracing says have pairs of vertices, , pair of vertices defines line...
Comments
Post a Comment