Инициализация делает указатель из целого числа - C (СИ)
Формулировка задачи:
Выдает ошибку на мой указатель, может я не правильно объявил указатель
Файла с исходным кодом
https://yadi.sk/i/tJdiWxk23G6rcu
COORD goRight(COORD pk, int dx) {
HANDLE hout1 = GetStdHandle(STD_OUTPUT_HANDLE); //хэндл экрана консоли
int d = 0;
char *c = 1;
while (d != dx) {
d++;
WriteConsoleOutputCharacter(hout1, " ", 1, pk, &NumRead);
pk.X++;
WriteConsoleOutputCharacter(hout1, "*", 1, pk, &NumRead);
Sleep(100);
}
return pk; //возврат новых координат студента
}
initialization makes pointer from integer without a cast char *c = 1;
Решение задачи: «Инициализация делает указатель из целого числа»
textual
Листинг программы
COORD goLeft(COORD pk, int dx) {
HANDLE hout1 = GetStdHandle(STD_OUTPUT_HANDLE);
int d = 0;
while (d != dx) {
d++;
WriteConsoleOutputCharacter(hout1, " ", 1, pk, &NumRead);
pk.X--;
WriteConsoleOutputCharacter(hout1, "*", 1, pk, &NumRead);
Sleep(100);
}
return pk;
} //вот эта скобочка была в строке комментария!
Объяснение кода листинга программы
- Функция
goLeftпринимает два аргумента типаCOORD(координаты) и целое число (dx). - Инициализируется переменная
hout1результатом функцииGetStdHandleс аргументомSTD_OUTPUT_HANDLE. - Инициализируется переменная
dзначением 0. - Запускается цикл while, который выполняется до тех пор, пока значение переменной
dне станет равнымdx. - Внутри цикла увеличивается значение переменной
dна 1. - Вызывается функция
WriteConsoleOutputCharacterс аргументами:hout1, символ пробела, 1,pk, адрес переменнойNumRead. - Значение переменной
pk.Xуменьшается на 1. - Вызывается функция
WriteConsoleOutputCharacterс аргументами:hout1, символ звездочки, 1,pk, адрес переменнойNumRead. - Вызывается функция
Sleepс аргументом 100 (миллисекунд). - После выхода из цикла while, возвращается значение переменной
pk. - Функция завершается.