#include <stdio.h>
#include <string.h>
void main(){
 int value =5;
 char gg[20];
 char buffer_one[8], buffer_two[8];
 
 strcpy(buffer_one, "one");
 strcpy(buffer_two, "two");
 
 printf("before버퍼 2는 %p에 있고 내용은 %s 다. \n", buffer_two,buffer_two);
 printf("before버퍼 1는 %p에 있고 내용은 %s 다. \n", buffer_one,buffer_one);
 printf("before값은 %p에 있고 값은 %d(0x%08x) 다. \n", &value,value, value);
 printf("버퍼 2에 입력할 값을 입력하세요\n");
 scanf("%s", gg);
 printf("strcpy %d바이트를 버퍼2에 복사 \n\n", strlen(gg));
 strcpy(buffer_two, gg);
 printf("입력값이 16바이트를 넘으면 오버플로우 발생..!!\n");
 printf("after 버퍼2는 %p에 있고 내용은 %s 다. \n", buffer_two, buffer_two);
 printf("after 버퍼1는 %p에 있고 내용은 %s 다. \n", buffer_one, buffer_one);
 printf("after값은 %p에 있고 값은 %d(0x%08x) 다. \n", &value,value, value);
}

+ Recent posts