구조체^^
강남맨
#include stdio.h
#include string.h
typedef struct{
char name[30];
int age;
char score[8];
} Student;
void main(void)
{
Student s;
printf(이름 : );
scanf_s(%s, s.name, sizeof(s.name));
printf(나이 : );
scanf_s(%d, &s.age);
printf(성적 : );
scanf_s(%s, s.score, sizeof(s.score));
printf(이름 : %s, 나이 : %d, 성적 : %s\n, s.name, s.age, s.score);
}
이와 같은 프로그램에서 scanf_s이 함수에 왜 s.name만 쓰는게 아니고 sizeof와 함께쓰는 거죵 ? 안하면 오류가 뜨더라구요..
scanf_s==scanf로 비주얼 2005를 써서 쓴것입니다.
-
로지
고야케 // 질문 게시판에 질문해 주세요.
-
알
호오 몰랐던 사실인데..ㅎㅎ 기억해둬야겠네요
-
마음새
와핫 감사해용 ㅜㅜ 책에도 없더라구용 ㅜㅜ 내가 못찾앗나 ?ㅋㅋㅋ ㅜㅜ 여튼 감사들여용 ㅋㅋ
-
희미햬
기존의 scanf()함수는 함수 자체적으로 버퍼라는 공간을 가지고 있으면서 입력되는 데이터를 버퍼에 저장하였다가 해당 변수의 주소로 데이터를 넘기는 형식을 취했습니다.
그런데 사용자 입력이 버퍼의 크기보다 커질 경우에는 버퍼 오버 플로우라고 하여 오류가 발생하게 됩니다. 버퍼 오버 플로우가 심하게 되면 시스템이 무력화될 수도 있습니다.
그래서 요즈음의 비주얼 스튜디오는 scanf()나 strcpy() 등의 함수 대신에 _s가 붙은 함수를 쓰도록 권유하고
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2656767 | 초보입니다.. (1) | 플랜 | 2024-05-31 |
2656744 | 재귀함수 공부하다 이해가 안가서 질문드려요 (10) | PinkPearl | 2024-05-31 |
2656717 | 10진수를 2진수로 바꾸는 프로그램인데요 (3) | 감춰왔던 | 2024-05-31 |
2656686 | 포인터의 메모리값에 문자열넣기가 원래 안되나요..? | 심플이 | 2024-05-31 |
2656658 | 두가지 질문...(요약하기가 어렵내요... 죄송합니다..) | 한봄찬 | 2024-05-30 |
2656583 | 배열에 주소값대입 왜!!!!!!!!!!! (6) | 갅쥐누뉨 | 2024-05-30 |
2656555 | C언어 인데요 EOF에 대해서에여 알고리즘.. | 루라 | 2024-05-29 |
2656531 | 과제가왔는데 문제이해조차못하겠네요.. (2) | 다온 | 2024-05-29 |
2656502 | 비트 연산자 부분 질문드려요... (1) | 진주 | 2024-05-29 |
2656474 | c언어 왕초보인데요.. (4) | 예님 | 2024-05-29 |
2656444 | switch 문 대신에 다른 것을 사용하는 방법 (1) | 맺음새 | 2024-05-28 |
2656365 | for문하나로 1부터 100까지 5의배수 아닌 수들의 합을 구하는 프로그램 질문입니다. (7) | 똘끼 | 2024-05-28 |
2656309 | 구조체를 배열로 여러개만든뒤 함수에서 사용하는법? | 눈내리던날 | 2024-05-27 |
2656280 | c언어 프로그램 틀좀 잡아주실수 있는분.. (2) | 별하 | 2024-05-27 |
2656247 | 질문이 있는데요... | 시원 | 2024-05-27 |
2656218 | 함수 반환하는거 질문 ㅠ | 스릉흔다 | 2024-05-26 |
2656166 | 갑자기 증가하거나 감소하는 부분 처리. (2) | 마디 | 2024-05-26 |
2656141 | 윤성우 저 열혈 c 에서.. (7) | 유진 | 2024-05-26 |
2656086 | 배열 질문좀요 컴파일은 되는데요 (3) | 새밝 | 2024-05-25 |
2656026 | 포인터+큐 프로그램 짜다가 질문 있어서 올립니다. (1) | 무크 | 2024-05-25 |