2012-05-24 4 views
1

이것은 간단한 문제인 것처럼 보입니다.하지만 여기서는 답을 찾기 위해 행운을 찾지 못했습니다. char * name 및 int age를 가진 struct Person이 있습니다.C의 매개 변수로 참조

error: expected ; , or) before & token 

내가 위의 잘 포인터를 사용 또는 오브젝트 구조체를 전달하지만 난 데 문제가 구현할 수 있습니다

void Person_messup(struct Person &who) { 
    who.name="asdfasdf"; 
    who.age = 9001; 
} 

이 코드를 컴파일하는 것은 나에게 다음과 같은 오류를 제공합니다 : 나는 다음과 같은 방법을 이 특정 구현. 도와 주셔서 감사합니다!

+6

C에서 참조가 없습니다. 아마 C++을 의미 할 것입니다. –

+0

글쎄, 그냥'.' 대신'->'를 사용하십시오 ... – Imp

답변

8

c에서 참조가 없으므로 구조체를 포인터로 전달하십시오.

void Person_messup(Person *who) { 
    who->name="asdfasdf"; // or really strcpy! 
    who->age = 9001; 
} 

(또는 사용 C++!)

+0

오 ~ man-_- 고마워요. 그것이 내가 두 사람 사이에서 앞뒤로 전환 할 때 얻는 것입니다. – lululoo

+0

@lululoo - C11에 추가되지 않았는지 확인해야했습니다. 개인적으로 나는 C++에서 비 const 레퍼런스를 피한다. 부작용과 너무 흡사하다. –

0

는 '구조체 사람을 * 누가 통과보십시오.