Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Глупый вопрос


Автор: Люда 15.4.2002, 13:30
Есть переменная типа char X c определенным размером, ну например 512, может ли в процессе работы программы возникнуть ошибка если вместо
memset(X,'\0',sizeof(X))
написать
memset(&X,'\0',sizeof(X))
в бесконечном цикле

Автор: neutrino 15.4.2002, 13:47
Нет, ошибки не будет. Но и ничего происходить тоже не будет. Если ты имеешь ввиду это:
Код

#include <mem.h>

void main () {
 char x[512]={0};

 while (1)
   memset(&x,'\0',sizeof(x));
}



Люда, а что ты не зарегистрируешся? Все гость, да гость... ;)

Автор: Люда 15.4.2002, 14:25
Цитата(neutrino @ 15.4.2002, 14:47)
Нет, ошибки не будет. Но и ничего происходить тоже не будет. Если ты имеешь ввиду это:
Код

#include <mem.h>

void main () {
 char x[512]={0};

 while (1)
   memset(&x,'\0',sizeof(x));
}



Люда, а что ты не зарегистрируешся? Все гость, да гость... ;)

Не, там внутри цикла всякишные изменения с переменной будут происходить, типа strcat.
А зарегистрироваться все руки не доходят...
???

Автор: Dicobraz 15.4.2002, 14:48
не, ну это смотря что назвать ошибкой...
X в данном случае - указатель, если его заmemset'ить, то потеряется адрес, по которому в стеке лежит массив - как его потом искать? Компилятору-то пофиг, он ошибки не увидит - подумаешь, обнуление куска памяти...
да и с NULL-pointer'ом работать никто не даст...
Так что не думаю я, что это хорошая идея...
Зачем надо-то? Прям интересно. Может по-другому можно поступить?

Автор: Люда 15.4.2002, 16:40
Дело в том, что как раз не надо, просто у меня в процессе работы программа падает и просматривая код, я обнаружила у себя данную запись (не знаю о чем думала когда  ставила &), вот и пришла мысль может в этом все дело, сейчас убрала, ждемс... :0

Автор: Dicobraz 16.4.2002, 11:14
Не забудь поведать миру результат :)

Автор: Люда 18.4.2002, 12:06
Тьфу, тьфу, тьфу, пока не падает, но надо еще денька три подождать... :hehe

Автор: Dicobraz 18.4.2002, 12:43
Нифига себе программа!!! :)

Автор: Люда 18.4.2002, 13:03
Да программа простенькая, просто она должна работать постоянно (в идеале), а прекращает она свою работу по клавишному прерыванию...  ;)

Автор: Dicobraz 18.4.2002, 13:08
А-а-а... А то я подумал, что расчеты какие-то... (или WindowsXP на 386 машине :D)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)