Значение указателя по умолчанию в Visual C ++ 6.0 - PullRequest
2 голосов
/ 26 августа 2009

Каково значение по умолчанию для указателя в Visual C ++ 6.0.

Если это имеет значение, мой вопрос касается, в частности, переменных в стеке.

В этом случае myArray изначально будет указателем NULL или будет иметь неопределенное значение?

double* myArray;

Ответы [ 6 ]

6 голосов
/ 26 августа 2009

Не определено.
C ++ не определяет значение по умолчанию для неинициализированных указателей.

Если вы работаете в режиме отладки в Visual Studio, тогда начальное значение неинициализированных переменных иногда равно 0xcdcdcdcd. Это значение изменяется в зависимости от того, где находится переменная - в стеке или в куче. Это, однако, неверно в сборках релизов, и вы не должны полагаться на это каким-либо образом.

Вот еще немного информации об этих значениях.

2 голосов
/ 26 августа 2009

Не определено. И даже если VC ++ 6.0 абсолютно гарантирует использование определенного значения, оно все равно не будет определено стандартом C ++. Вы должны всегда избегать специфических особенностей компилятора любой ценой. Вы можете не думать, что сейчас вам нужно перенести код в другой компилятор, но рано или поздно это произойдет, и он сломается.

И так сложно сказать:

double* myArray = NULL;
2 голосов
/ 26 августа 2009

Это фигня.

0 голосов
/ 26 августа 2009

Указатель определяется во время выполнения как занимающий определенное место в памяти. Его начальное значение будет определяться тем, какой битовый паттерн окажется в этом месте. Нет способа определить это заранее.

Как указано в другом месте, объявите его с начальным значением null или с тем, что вам наиболее удобно.

0 голосов
/ 26 августа 2009

Нет указателя по умолчанию в Visual C ++ 6. Если не объявлено, указатель не инициализируется, поэтому значение будет неопределенным (что означает «мусор»). Вот почему рекомендуется в качестве наилучшей практики инициализировать указатели при объявлении (или в списке инициализации конструктора для указателей членов класса).

0 голосов
/ 26 августа 2009

ваш myArray будет иметь значение мусора

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...