typedef struct {
double *x;
int points;
} Polygon;
polygon[cc].points = readobject(polygon[cc].file); //lets say equals 15
polygon[cc].x = (double *) malloc(polygon[cc].points * sizeof(double));
printf("%d\n", sizeof(polygon[cc].x)/sizeof(polygon[cc].x[0]));
//This prints out on 1
Я тест инициализирует x
как x[100]
и он работает тогда, но не если malloc()
вызов установлен массив в STRUCT по адресу x[15]
? Это просто измерение байтов двух double
s?Почему мой размер (arr)/sizeof (arr [0]) = 1?
Что вы получите с помощью 'polygon [cc] .x [0]'? x не является массивом ... – Claudio
Вызов 'sizeof' на динамически выделенный массив просто вернет размер указателя в байтах, а не размер всего массива. – sgarizvi
'float x [15]' это совсем другое дело от 'float * x = malloc (15 * sizeof (float))' Также, [не выдавать результат 'malloc'] (http: // stackoverflow. ком/вопросы/1565496/специфично, Что-опасно-о-литейно-заместитель на результат из-таНоса). –