Új hozzászólás Aktív témák
-
alapz@j
tag
válasz
jattila48
#6331
üzenetére
Ezt írtam rá tegnap:
void t1(void) {
char msg[16];
strcpy(msg, "Hello!");
puts(msg);
}
void t2(void) {
char msg[16];
puts(msg);
}
int main(void) {
t1();
t2();
return EXIT_SUCCESS;
}Mivel a t1 és t2 függvényeknek ugyanolyan méretű a kezdeti stack frame-je, így a t2 hívásakor a char[16] ugyanarra a memóriaterületre esik és a puts szépen kiírja az előző függvényből ott maradt Hello!-t
-
buherton
őstag
válasz
jattila48
#6331
üzenetére
A másik függvény a struktúrát nem inicializálta, hanem csak olvasta. Így történhetett meg ez a csodás hiba. Ez gyakorlatilag egy értékadás volt
.A többire. Amit nem javítottam ott tényleg sok mindent kellett volna átírni. Erre már nem volt idő. Egyébként igazad van elméletben. Én még ezzel a mentalitásommal - mármint hogy a feladathoz nem kapcsolódó hibákat javítsak - még ki is lógok a többiek közül. Ebbe és több más dologba is beleállok.
Nem tudok többet hozzáfűzni, mint amit dabadab írt.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- 27% - GIGABYTE MO34WQC2 Karcos OLED Monitor! 3440x1440 / 240hz / 0.03ms / FreeSync!
- Telefon felvásárlás!! Honor 90 Lite/Honor 90/Honor Magic5 Lite/Honor Magic6 Lite/Honor Magic5 Pro
- 275 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080
- GAMING PC! Ryzen 5700X / RTX 3070 / 32GB 3600MHz / SSD / 700w Gold!
- HIBÁTLAN iPhone 14 Plus 256GB Red-1 ÉV GARANCIA - Kártyafüggetlen, MS4561, 100% AKKSI
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
.
