Это зависит, куда Вы помещаете эту инициализацию.
, Если массив статичен как в
char array[100] = {0};
int main(void)
{
...
}
тогда, это - компилятор, который резервирует 100 0 байтов в данных segement программы. В этом случае Вы, возможно, опустили инициализатор.
, Если Ваш массив является автоматическим, то это - другая история.
int foo(void)
{
char array[100] = {0};
...
}
В этом случае в каждом вызове функционального нечто у Вас будет скрытый memset.
код выше эквивалентен
int foo(void)
{
char array[100];
memset(array, 0, sizeof(array));
....
}
и если Вы опустите инициализатор, то Ваш массив будет содержать случайные данные (данные стека).
, Если Ваш локальный массив объявляется статичный как в [1 111]
int foo(void)
{
static char array[100] = {0};
...
}
тогда, это - технически тот же случай как первый.
DependencyProperties можно создать только в DependencyObjects, и поскольку приложение (от которого наследуется ваш класс App) не реализует его, вы не можете создать DependencyProperty непосредственно в классе App.
Я предполагаю, что вы хотите, чтобы это свойство поддерживало привязку. В этом случае у вас есть два варианта:
<TextBlock Text="{Binding Properties.Temp}" />
Если свойство должно быть целью привязки, то вариант №2 - ваш лучший выбор.
Ваш класс, содержащий свойства зависимостей, должен наследовать от DependencyObject.