Привет всем.
Такой вопрос: у меня есть char buffer[LEN] и в нем какая-то строка, как мне его ПРАВИЛЬНО очистить? Первое, что пришло в голову это сделать char[0]=0, но будет ли это правильно? не произйдет ли при этом каких-нибудь катаклизмов в памяти и не возникнет ли такой возможности?
Спасибо
Здравствуйте Corvin, Вы писали:
C>Привет всем. C>Такой вопрос: у меня есть char buffer[LEN] и в нем какая-то строка, как мне его ПРАВИЛЬНО очистить? Первое, что пришло в голову это сделать char[0]=0, но будет ли это правильно? не произйдет ли при этом каких-нибудь катаклизмов в памяти и не возникнет ли такой возможности? C>Спасибо
Здравствуйте Corvin, Вы писали:
C>Здравствуйте Nikto, Вы писали:
N>>Не произойдет. N>>Можно еще strcpy(buffer,"");
C> спасиба.... И как это я про strcpy не вспомнил
можно еще и так
memset(buffer, 0, strlen(buffer));
Species come and go, but the earth stands forever fast...
Здравствуйте Corvin, Вы писали:
C>Привет всем. C>Такой вопрос: у меня есть char buffer[LEN] и в нем какая-то строка, как мне его ПРАВИЛЬНО очистить? Первое, что пришло в голову это сделать char[0]=0, но будет ли это правильно? не произйдет ли при этом каких-нибудь катаклизмов в памяти и не возникнет ли такой возможности? C>Спасибо
Хотелось бы знать для чего Вы это делаете? А так на выбор
Здравствуйте Libra, Вы писали:
L>Здравствуйте Corvin, Вы писали:
C>>Здравствуйте Nikto, Вы писали:
N>>>Не произойдет. N>>>Можно еще strcpy(buffer,"");
C>> спасиба.... И как это я про strcpy не вспомнил
Зачем тебе strcpy(buffer,"") , ты посмотри что он делает, целый
вызов функции на обнуление первого байта ..., он не обнуляет
весь буфер. Используй то что ниже советуют, а если буфер не динамический
то еще лучше
Здравствуйте Широков А.В., Вы писали:
ША>Здравствуйте Corvin, Вы писали:
C>>Привет всем. C>>Такой вопрос: у меня есть char buffer[LEN] и в нем какая-то строка, как мне его ПРАВИЛЬНО очистить? Первое, что пришло в голову это сделать char[0]=0, но будет ли это правильно? не произйдет ли при этом каких-нибудь катаклизмов в памяти и не возникнет ли такой возможности? C>>Спасибо
ША>Хотелось бы знать для чего Вы это делаете? А так на выбор ША>
Здравствуйте Анатолий, Вы писали:
А>Здравствуйте Rand1, Вы писали:
R>>В копилку: R>>ZeroMemory(buffer,sizeof(buffer))
А>Это откуда этот зверь (прошу меня простить за невежество)?
Странно что вы не знакомы с этим зверем:
ZeroMemory
The ZeroMemory function fills a block of memory with zeros.
VOID ZeroMemory(
PVOID Destination, // memory block
SIZE_T Length // size of memory block
);
Parameters
Destination
[in] Pointer to the starting address of the block of memory to fill with zeros.
Length
[in] Size, in bytes, of the block of memory to fill with zeros.
Return Values
This function has no return value.
Здравствуйте Анатолий, Вы писали:
А>Здравствуйте Rand1, Вы писали:
R>>В копилку: R>>ZeroMemory(buffer,sizeof(buffer))
А>Это откуда этот зверь (прошу меня простить за невежество)?
не забываем время от времени заглядывать в MSDN
ZeroMemory
The ZeroMemory function fills a block of memory with zeros.
VOID ZeroMemory(
PVOID Destination,
// address of block to fill with zeros
DWORD Length // size, in bytes, of block to fill with zeros
);
Parameters
Destination
Pointer to the starting address of the block of memory to fill with zeros.
Length
Specifies the size, in bytes, of the block of memory to fill with zeros.
Return Values
This function has no return value.
QuickInfo
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in winbase.h.
See Also
Memory Management Overview, Memory Management Functions, CopyMemory, CopyMemoryVlm, FillMemory, FillMemoryVlm, MoveMemory, MoveMemoryVlm, ZeroMemoryVlm
Здравствуйте Rand1, Вы писали:
R>Здравствуйте Анатолий, Вы писали:
А>>Здравствуйте Rand1, Вы писали:
R>>>В копилку: R>>>ZeroMemory(buffer,sizeof(buffer))
А>>Это откуда этот зверь (прошу меня простить за невежество)? R>Странно что вы не знакомы с этим зверем:
R>ZeroMemory R>The ZeroMemory function fills a block of memory with zeros.
R>VOID ZeroMemory( R> PVOID Destination, // memory block R> SIZE_T Length // size of memory block R>); R>Parameters R>Destination R>[in] Pointer to the starting address of the block of memory to fill with zeros. R>Length R>[in] Size, in bytes, of the block of memory to fill with zeros. R>Return Values R>This function has no return value.
Да неее...Просто это форум по C++ а не по WinAPI :))
Здравствуйте Rand1, Вы писали:
R>ZeroMemory R>The ZeroMemory function fills a block of memory with zeros.
Спасибо, за разъяснение, но по роду своей работы, я пишу переносимые решения (Windows, xNIX, QNX), посему азов Windows API не знаю. Конечно, надо бы это знать.