Другое С/С++ Вопрос - Ответ

Vadim.dll

Известный
168
81
Вообщем глядите... Я функцией spintf записываю строку в например char buf[256]
Мне нужно поместить этот buf в массив то есть есть там вверху массив char bufarray[]
Но! Вылазит ошибка потомучто char buf[256] это const char* всяко перепробывал... никак не выходит, подскажите пожалуйста
 

iAmerican

Известный
Друг
614
260
Вообщем глядите... Я функцией spintf записываю строку в например char buf[256]
Мне нужно поместить этот buf в массив то есть есть там вверху массив char bufarray[]
Но! Вылазит ошибка потомучто char buf[256] это const char* всяко перепробывал... никак не выходит, подскажите пожалуйста
CSS:
sprintf(*buf, "", bufarray);

Не заработает , кинь полностью код.
 

iAmerican

Известный
Друг
614
260
Я так пробывал ошибка вылетает...

char *buf[];

buf2[256];

sprintf(buf2, "Строка %d", 1);
buf[1] = buf2;

Сложно ты как то делаешь . Да и код не полный.

C++:
char *buf[];
Так нельзя делать.
C++:
buf[1] = buf2;
Так тоже.
Так можно:
C++:
sprintf(buf2,"%s",buf1)
И что вообще за " 1 "?
 

Vadim.dll

Известный
168
81
Первый элемент в массиве... ты не понимаешь мне нужно поместить буфер этот в массив а не просто присвоить значение
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Что это за объявление массива такое? Cтранно, что у тебя вообще компилятор допустил такое объявление.
Для объявления массива типа char нужно делать так: char arr[16]; - вместится 16 символов.
Чтобы хранить "строки" нужно объявлять так: char arr[12][16] - 12 строк по 16 символов.
Записывать можно только определенной длины - 16 символов(1 из них нулевой).

Можно хранить указатели на выделенные буферы. Объявлять массив придется так: char* arr[12], далее объявляем и присваиваем char* str = "test"; и в необходимую ячейку записываем, либо выделяем через malloc, форматируем и записываем в массив.

Для таких целей есть std::vector и std::string с которыми удобнее работать.
Можно парочку статей что ли почитать, нежели херачить наугад то, что изучал из других языков(если ты их изучал конечно, а так наобум - нет смысла, как ты заметил).
 

Vadim.dll

Известный
168
81
это я уже понял... я много языков видел н тут с память робота в притык прям
 

p1cador

cerf
Проверенный
221
359
сразу говорю - не .sf, а .asi
вопрос:
как пользоваться вот этим:
C++:
#define FUNC_IsOnScreen                                        0x534540
#define FUNC_IsVisible                                      0x536BC0
а если точнее - мне нужно проверить, видно ли игроков на экране. Нашел эти адреса в исходниках собейта, долго пытался вкурить и пересматривал исходник соба - нихера не понял. Из игрока могу вытянуть любую инфу, вплоть до 2д координат.
Как этими функами пользоваться, и распишите пожалуйста подробней - я тупой.
спс
 

AWRage

Активный
642
141
Оно?
C++:
// Converted from thiscall bool CEntity::GetIsOnScreen(void) 0x534540
bool CEntity::GetIsOnScreen()
{
    return ((bool (__thiscall *)(CEntity*))0x534540)(this);
}
 
  • Нравится
Реакции: p1cador

p1cador

cerf
Проверенный
221
359
Оно?
C++:
// Converted from thiscall bool CEntity::GetIsOnScreen(void) 0x534540
bool CEntity::GetIsOnScreen()
{
    return ((bool (__thiscall *)(CEntity*))0x534540)(this);
}
Возможно, только завтра будет возможность проверить. Но я нихера не понял все ровно. То есть это можно юзать только в методах классов? А вместо CEntity* передавать указатель на CPed? Если можно обьясни плз как вообще эта хуйня называется и с чем ее едят
 

SR_team

like pancake
BH Team
4,798
6,469
Возможно, только завтра будет возможность проверить. Но я нихера не понял все ровно. То есть это можно юзать только в методах классов? А вместо CEntity* передавать указатель на CPed? Если можно обьясни плз как вообще эта хуйня называется и с чем ее едят
CPed вместо this
 
  • Нравится
Реакции: p1cador