следующий код:
- включает вопрос комментарии
- чисто компилирует
- демонстрирует, как выделить много экземпляров структуры в массиве
- демонстрирует, как обрабатывать ошибки
- оператор
sizeof()
возвращает size_t
не int
, поэтому все ссылки соответствующим образом изменены
и теперь код
#include <stdio.h> // scanf(), perror()
#include <stdlib.h> // exit(), EXIT_FAILURE, malloc()
struct varfuri
{
float x;
float y;
};
int main(void)
{
size_t numPoints;
if(1 != scanf("%lu",&numPoints))
{
perror("scanf failed");
exit(EXIT_FAILURE);
}
// implied else, scanf successful
struct varfuri *puncte = malloc(numPoints * sizeof(struct varfuri));
if(NULL == puncte)
{
perror("malloc failed");
exit(EXIT_FAILURE);
}
// implied else, malloc successful
// the following, on a 32 bit architecture, will return 4
printf("\nSIZEOF PUNCTE: \n%lu",sizeof(puncte));
//return 0; not needed when the returned value from `main()` is 0
} // end function: main
вы получили это определено сначала как 'float', а затем' struct'. Сообщение ясно. –
О, спасибо, гений –
Тогда как мне его определить? –