저도 오류 나옵니다. 정확히는 문법오류가 아니고 '경고' 입니다. 그렇기 때문이 컴파일 및 빌드는 가능합니다. countof()는 AI 답변에도 나오는 것처럼 함수가 아니라 매크로이며 결과 형식은 unsigned _int64 형식입니다. 강제로 unsigned int로 변경하면 경고도 사라지게 할 수 있습니다. 이 역시 AI 답변을 참고하시기 바랍니다.
szName(char형 배열)과 nAge는 서로 다른 변수이므로 각자 별도의 메모리 공간을 사용합니다. 그리고 gets_s() 함수는 stdin 장치 파일 버퍼에서 '\n'이 나올 때까지 문자열을 읽어 옵니다. stdin에서 문자열을 읽어 오는 것은 scanf_s() 함수도 마찬가지 입니다. 콘솔 파일(stdin) 버퍼는 변수로 선언되어 있는 것이 아니며 내부적을 존재하는 메모리 입니다. 당연히 szName, nAge 변수와는 관련이 없습니다. 그러므로 잘 이해하셨습니다. :)
단순히 변하지 않는 다는 것으로는 구체적으로 답을 드리기 어렵습니다. 메모리 윈도우 화면 같은 곳의 색상이 변하는 것은 해당 구문 실행으로 메모리에 변화가 있었을 때 빨간색으로 표시되는 것입니다. 다른 설정상의 이유가 있을 수도 있고 메모리 위치를 잘못 기술해서 변화가 없었을 수도 있습니다. 정리하면 브레이크 포인트가 히트한 시점에 F10 키를 눌러 한 행을 실행하면 그 실행결과로 변경된 메모리 값이 빨갛게 표시된다는 사실을 기억하시고 다시 확인해보시기 바랍니다.
설정에 따라 다랍니다. S3는 VPC 안에 있는 리소스가 아니라 리전 단위 퍼블릭 서비스라서 VPC Endpoint를 명시적으로 만들지 않는 한 트래픽은 항상 "VPC 밖으로 나갔다가" S3 퍼블릭 엔드포인트에 도달합니다. 즉, VPC Endpoint가 없으면 = IGW(혹은 NAT→IGW)를 거친다 고 보면 됩니다. 그러나 Gateway Endpoint 설정하면 IGW/NAT 안 거치고 AWS 내부 경로로 직행 합니다. 참고하시기 바랍니다.