Я просматривал чей-то код, где натолкнулся на поток:
while(TRUE)
{
......
STRUCT_MSG_SYS_HEADER sysHdr;
.....
....
}
Существует пять таких потоков, я хочу сказать, что "STRUCT_MSG_SYS_HEADER sysHdr;"приведет к переполнению стека через некоторое время или дни ... (не проверено, хотя).Поэтому я решил написать простой пример приложения
1 #include "stdio.h"
2
3 struct infinite
4 {
5 int arr[1000000];
6 }infinite;
7
8 int main()
9 {
10 while(1)
11 {
12 struct infinite infobj;
13 printf("\ninfinite = %x\n", &infobj);
14 }
15 return 0;
16 }
Но здесь он печатает тот же адрес для infobj.Мое мнение о stackoverflow неверно или здесь компилятор провел некоторую оптимизацию?(Я считаю себя хорошим программистом, но подобные вещи заставляют меня снова подумать, снова прочитать Дениса Ричи)