
28.09.2008, 21:40
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Сообщение от M@X Dr.Akyla
_nic можешь исходник выложить?
Код:
char* lsds()
{
char buff[1024];
char *buf=new char[1024];
char *buf1=new char[1024];
char *buf2=new char[1024];memset(buf2,NULL,1024);
struct {
UINT type;
LPCSTR name;
} DTF [] = {
{ DRIVE_UNKNOWN, " Unknown\n" },
{ DRIVE_NO_ROOT_DIR, " Invalid path\n" },
{ DRIVE_REMOVABLE, " Removable\n" },
{ DRIVE_FIXED, " Fixed\n" },
{ DRIVE_REMOTE, " Network drive\n" },
{ DRIVE_CDROM, " CD-ROM\n" },
{ DRIVE_RAMDISK, " RAM disk\n" },
{ 0, NULL},
};
GetLogicalDriveStrings(sizeof(buff)/sizeof(char),buff);
for(int i=0; i<1024-1; i++)
if( buff[i]==0)
{
if(buff[i+1] != 0)
buff[i] =(char) 0x20;
else
break;
}strcpy(buf,buff);
for(;;)
{
strncpy(buf1,buf,3);buf+=4;
strcat(buf2,buf1);strcat(buf2,DTF[GetDriveType(buf1)].name);
if(strlen(buf)==0){break;}
}
return(buf2);
}
В кнопке
Код:
ShowMessage(lsds());
С каждым нажатием на которую.Количество памяти занимаемое прогой увеличивается на 4 килобайта.А я почему то думал что после завершение работы ф-ции все её внутренние переменные полностью вычищяются из памяти.
|
|
|