Ik ben nu bezig met het leren van C++ en ik heb een vraag over alloceren op de stack en de heap. In het boek dat ik heb wordt dit niet duidelijk genoeg uitgelegd.
Eigenlijk is het een kort ja/nee vraagje..
Eigenlijk is het een kort ja/nee vraagje..
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| #include <iostream> #include "windows.h" int _tmain(int argc, _TCHAR* argv[]) { char *toSearchFor; for(int i = 0; i < 100000; i++) { switch( i % 4 ) { case 0: { char* token = "StukTest"; toSearchFor = token; } break; case 1: { char* token = "12345678"; toSearchFor = token; } break; case 2: { char* token = "AndereDa"; toSearchFor = token; } break; case 3: { char* token = "TaKomtHi"; toSearchFor = token; } break; case 4: { char* token = "erStaan!"; toSearchFor = token; } break; } std::cout << toSearchFor << std::endl; Sleep(20); } system("pause"); return 0; } |
- Komt de tekst op de stack terecht?
- Als ik het op regel 27 std::cout doe, is het geheugen invalidated -- dat het werkt is het puur toeval?