간단한 단어로 말하면 구조체하기 위해, 나는 구조체를 선언 한 파일에서 5 개의 레코드를 읽으려고하지만 증분으로 인해 프로그램을 실행하려고하면 오류가 발생합니다. ("char studentName [20];"과 같은 것이 있으면 잘 작동합니다.) 원하는 결과를 얻기 위해 포인터를 어떻게 증가시켜야합니까? 그것은 포인터 표기법에 있어야합니다.증가 포인터
STUDENT* ptr = studentPtr;
while (*count < MAX_SIZE)
{
fscanf(spData, "%s %*s %*s %*d %*d %*d %*d %*d", ptr->studentName)
(*count)++;
ptr++;
}
File Content:
Julie Adams 1234 52 7 100 78 34
Harry Smith 2134 90 36 90 77 30
Tuan Nguyen 3124 100 45 20 90 70
Jorge Gonzales 4532 11 17 81 32 77
Amanda Trapp 5678 20 12 45 78 34
그냥 마지막 질문 : 나는 선언하고 올바르게 메모리를 할당하여 내가 구조체를 유지 합니다. 내가 끝내면 어떻게 풀 수 있습니까? 이런 식으로해야할까요?
for (STUDENT* ptr = studentPtr; ptr < studentPtr + *count; ptr++)
{ //*count is the number of records
free(ptr->studentID);
free(ptr->studentName);
free(ptr->studentScores);
}
free(studentPtr);
'을하지만 내가 error'를 얻을 - 당신이 어떤 오류를받을 수 있나요? (http://www.toomuchcode.org/2008/11/guru-myth.html :-)에 링크하려는 유혹입니다. –
구체적이지 않은 것을 유감스럽게 생각합니다. Xcode에서 "EXC_BAD_ACCESS (code = 1, address = 0 x 0)"를 얻었습니다.이 코드를 다른 컴파일러에서 실행하려고 시도했지만 실패했습니다. – KurodaTsubasa
파일에서 데이터를 공유 할 수 있습니까? "\ n "또는 형식 지정자의 다른 문자가 있으면 각 항목을 하나씩 읽으십시오. 누락 된 항목을 알게됩니다. – Shubhansh