7506567162

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> #include
A simplifiedcopying program #include <stdio.h> #include <fcntl.h> #define PERMS 066
fprintf1 #include <stdio.h> int fprintf(FILE * stream, char * Format[, wartość,...]); int fsca
Po 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[]){ eWor
PB210053 #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> void

więcej podobnych podstron