Здравствуйте, vis1979, Вы писали:
V>Уважаемые мастера! просветите пожалуйста все ли правильно я делаю, и если нет укажите наошибки:
Ну раз уж ты сам просишь: "на ошибки" пишется раздельно
V>Есть Функция
V>void * TimerAdd(набор параметров)
V>{
V> struct TimerStruct * tempTimerEl = (struct TimerStruct *) malloc (sizeof(struct TimerStruct));
V> ...
V> тело функции
V> ...
V> return tempTimerEl;
V>}
Это, похоже, именно С... Если это именно C, то
...
struct TimerStruct* tempTimerEl = malloc(sizeof *tempTimerEl);
...
Т.е. во-первых, никакого приведения типа не надо, и, во-вторых, 'sizeof' лучше натравить на указатель-получатель, а не на тип.
Не понятно почему тип возврата — 'void*', а не 'struct TimerStruct*'.
V>далее определяется массив (подразумевается массив указателей на void)
V> void ** TimerKLZ;
V>выделяется память под массив указателей на void
V>if (CountKLZ > 0)
V> if ((TimerKLZ= (void **) malloc(sizeof(void *)*CountKLZ))==NULL)
V> {
V> free(Data);
V> return 0;
V> }
Опять же
...
if ((TimerKLZ = malloc(CountKLZ * sizeof *TimerKLZ)) == NULL)
...
V>и далее собственно вызов и присвоение
V> for (i=0; i<CountKLZ; i++)
V> {
V> TimerKLZ[i]=TimerAdd(параметры);
V> }
По-прежнему не понятно, почему массив именно 'void*'-ов...