7506567162
► Rozważmy program:
#include <stdio.h>
long i;
void foo(const char *s, long *j) {
*j = T,
printf(s);
>
int main(int argc, char *args[]) {_ foo(args[l] , &i); printf C"\ni = '/.ld\n", i); return 0;
>
► Skompilujmy go:
gcc -Wall -02 -fno-inline -o cform cform. c
► A co będzie, gdy podamy bardziej „wyrafinowany” argument?
$ ./cform "a7,n" a
i = 1
$ ./cform "abc7.n" abc i = 3
$. /cform "abcdefghijklmnopqrstuvwxyz‘/,n'' abcdefghijklnmopqrstuvwxyz i = 26
drugi argument funkcji foojest traktowany jako drugi argument printfa
przepełnienie arytmentyczne o język C nie definiuje, czy char jest ze znakiem czy bez o trzeba uważać przy porównywaniu signed i unsigned o Ktoś nawet wykonał kiedyś taki atak
BSK Strona 14
Wyszukiwarka
Podobne podstrony:
Nasz pierwszy program #include <stdio.h> #include <stdlib .h> int main(int argc , char *ANSI C 9 5 WSKAŹNIK! I TABLICE ________— A oto program: #include <stdio.h> #includeA simplifiedcopying program #include <stdio.h> #include <fcntl.h> #define PERMS 066fprintf1 #include <stdio.h> int fprintf(FILE * stream, char * Format[, wartość,...]); int fscaPo class Napis{ private: const int m_cchTest; int m_cch; char *m_pch; void lnicjNapis(const cha{ SetSz(sz);} else m_rgch[0] = 0;} void SetSz(const char *sz){ int cchDst; cchDst =1.4. Środowisko programistyczne #include "soleng.h" int main(int argc, char *argv[]){ eWorPB210053 #include <stdio.h> * #tnclude <conio,h> long flb(long n); void main(void)Slajd19 Muteks - przykład kodu programu #include <windows.h> #include <iostream.h> voidwięcej podobnych podstron