#include<stdio.h>
struct st
{
char *name;
char *br;
};
int main()
{
struct st ob[2];
ob[0].name=NULL;
ob[0].br=NULL;
ob[1].name=NULL;
ob[1].br=NULL;
printf("Enter name:");
scanf("%s",ob[0].name);
printf("enter branch:");
scanf("%s",ob[0].br);
}
이 프로그램을 실행하면 이름을 입력 한 후 프로그램이 실행을 멈 춥니 다. 프로그램이 잘 작동하도록 변경 사항을 제안하십시오.구조 프로그래밍 C에서
포인터가 입력 한 문자열의 주소를 유지할 때 '&'기호가 필요한 이유는 무엇입니까? Pl. 덧글 – Ajax
@Ajax 나는 이것을 대답으로 받아들이지 않지만 왜 &'는 문자열을 여기에서 스캔해야 하는가? 또한이 ans는 메모리를 할당하는 실제 문제를 말하지 않습니다. – Gopi
@Ajax scanf의 인자는 포인터와 비슷하게 작동합니다. 그래서 여러분은 입력을 받고있는 것을 지적해야합니다. Ob [0.] .name은 값을 얻지 만 입력하려고하는 변수의 메모리 위치를 가리 키지 않고 잘못된 메모리 섹션을 덮어 씁니다. 이것이 당신의 질문을 만족 시키길 바랍니다. – Deva