ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 21.11.2008, 02:00
InfernoNet
Banned
Регистрация: 07.11.2007
Сообщений: 301
Провел на форуме:
3428344

Репутация: 595
По умолчанию

Элементарный вопрос. Для чего нужно:
Цитата:
main ()
и чем оно отличается от
Цитата:
vaild main ()
??
 

  #2  
Старый 21.11.2008, 02:08
ToniKapuchon
Участник форума
Регистрация: 26.02.2006
Сообщений: 209
Провел на форуме:
2418438

Репутация: 93
По умолчанию

Цитата:
Сообщение от InfernoNet  
Элементарный вопрос. Для чего нужно:

и чем оно отличается от

??
точка входа в программу функция main(), а vaild ето тип возращаемый ОС тип.... первый раз вижу vaild - где ты ето увидел?
 

  #3  
Старый 22.11.2008, 23:48
InfernoNet
Banned
Регистрация: 07.11.2007
Сообщений: 301
Провел на форуме:
3428344

Репутация: 595
По умолчанию

Цитата:
Сообщение от ToniKapuchon  
точка входа в программу функция main(), а vaild ето тип возращаемый ОС тип.... первый раз вижу vaild - где ты ето увидел?
У препода на доске.
 

  #4  
Старый 21.11.2008, 02:42
Smapt
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме:
373690

Репутация: 88
По умолчанию

есть такой код:
Код:
struct abs1
{
	unsigned char a; //1-byte
	unsigned short b;//2-byte
};
void pr(unsigned char*t)
{
	for(int i=0;i<sizeof(t);i++) printf("%x ",t[i]);
}

int main()
{
	abs1 test;
	test.a = (unsigned char)0x31;
	test.b = (unsigned short)0x32;
	printf("Struct size: %d\n",sizeof(test));

	pr((unsigned char*)&test);
	getchar();
	return 0;
}
Выводит:
Struct size: 4
31 CC 32 00

Почему размер структуры 4 если (чар -1баит и шорт-2байта) должен быть 3 байта.

Лишний байт виден при печати структуры (второй - 0хСС)

как от него избавится?
 

  #5  
Старый 21.11.2008, 02:53
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

Цитата:
Почему размер структуры 4 если (чар -1баит и шорт-2байта) должен быть 3 байта.
Видимо выравнивание вступает в ход.
Цитата:
Лишний байт виден при печати структуры (второй - 0хСС)

как от него избавится?
Очищать память, CC - мусор.
 

  #6  
Старый 21.11.2008, 03:06
Smapt
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме:
373690

Репутация: 88
По умолчанию

Если я правильно понимаю после очистки мамяти будет 31 00 32 00, я прав? Мне же необходимо от "лишнего" байта избавится, т.е. структура должна быть размером именно 3 байта.
 

  #7  
Старый 21.11.2008, 16:19
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
Сообщение от Smapt  
Если я правильно понимаю после очистки мамяти будет 31 00 32 00, я прав? Мне же необходимо от "лишнего" байта избавится, т.е. структура должна быть размером именно 3 байта.
Для того чтобы включить выравнивание по границе байта нужно сделать

#pragma pack(push, 1)

тут структура

#pragma pack(pop)
 

  #8  
Старый 21.11.2008, 03:38
SVAROG
Постоянный
Регистрация: 13.02.2007
Сообщений: 406
Провел на форуме:
2706059

Репутация: 206
По умолчанию

нужно прочесть данные из реестра, тип данных REG_SZ, компилиться без ошибок, но в буфере(Reget) где должны быть данные пусто
часть кода
Код:
HKEY hKey;
RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfeaces\\{2BF69BB5-EB8E-48CE-8D1F-FA2CCF27B}", 0, KEY_READ, &hKey);
char Reget[64];
DWORD RegetPath = sizeof(Reget);
DWORD type = REG_SZ;
RegQueryValueExA(hKey, "DhcpIPAddress", NULL, &type, (PBYTE)Reget, &RegetPath);
RegCloseKey(hKey);

printf(Reget);
 

  #9  
Старый 21.11.2008, 11:04
12usver12
Познающий
Регистрация: 12.12.2007
Сообщений: 81
Провел на форуме:
589075

Репутация: 53
По умолчанию

Svarog попробуй вместо &type влепить 0 , у меня работало так
 

  #10  
Старый 21.11.2008, 12:52
Diablo@Dragon
Познающий
Регистрация: 14.11.2007
Сообщений: 68
Провел на форуме:
113757

Репутация: 8
По умолчанию

Сообщение от ToniKapuchon
void func(int p=1;int p1=2)
{
}

в компосере непашет такого вида конструкция нехочет компилить
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ