странно когда говорят, компилятору достаточно того что он знает тип функции и параметры, а то что она делает не важно ?
Ну хорошо нужны эти определения, так давайте я их определю в самом math_fanctions.c. И все компилятор будет знать определения функций?
Что-то типа плохо включать через #include "math_function.c" нужно именно ".h" или что?
Но зачем если ей известно уже вся функция и заголовок и тело. Или это просто так надо ?
#include <stdio.h>
double sqr(double a)
{
return a*a;
}
int main(void)
{
return 0;
}zippo[0] это адрес первого элемента в подмассиве ({2, 4}) т.е 2.
#include <stdio.h>
int main()
{
int a[4] = {1,2,3,4};
int *p = (int*)&p;
printf("%p, %p\n", a, &a);
printf("%p, %p\n", p, &p);
}#include <stdio.h>
int main()
{
int *a1 = (int*)&a1;
int *a2 = a1;
printf("%p, %p\n", a1, &a1);
printf("%p, %p\n", a2, &a2);
}
Каким-нибудь process explorer можно посмотреть сколько хендлов ваша программа имеет, если это число растет, надо разбираться, какие из виндовых объектов вы правильно не уничтожаете. Вроде бы все битмапы вы корректно уничтожаете через DeleteObject, возможно ошибка в другом коде.
Можно еще поробовать вашу программу подебажить. Вот когда окно вылезает, какой ваш код выполняется? Подключитесь к вашему процессу visual studio и смотрите. Или добавьте отладочный вывод, чтобы понять, какая функция начинает выполнятся но не заканчивает. Это подскажет вам, какие объекты вы не удалили правильно.