Я следил за этим курсом в youtube, и речь шла о том, как некоторые программисты могут использовать там знания о том, как кладется память умные вещи.. один из примеров в лекции был чем-то вроде этого
#include <stdio.h>
void makeArray();
void printArray();
int main(){
makeArray();
printArray();
return 0;
}
void makeArray(){
int array[10];
int i;
for(i=0;i<10;i++)
array[i]=i;
}
void printArray(){
int array[10];
int i;
for(i=0;i<10;i++)
printf("%d\n",array[i]);
}
Идея заключается в том, что обе функции имеют одинаковый размер записи активации в сегменте стека, она будет работать и печатает числа от 0 до 9... но на самом деле это печатает что-то вроде этого
134520820
-1079626712
0
1
2
3
4
5
6
7
всегда есть эти два значения у нищего... может ли кто-нибудь объяснить это??? iam с использованием gcc в linux
точная лекция url начиная с 5:15