를 구조체 할 (a 루프)가 I과 같이 어레이에 사용자를 추가하고 함수배열 함수, I 이러한 구조체 포인터의 포인터 배열이 외부 그때 너무</p> <pre><code>Person **people; </code></pre> <p>같이, 만약 그렇게</p> <pre><code>typedef struct person { int id; char name[20]; } Person; </code></pre> <p>같은 구조체가
Person person;
for (i = 0; i < 50; i++)
{
person.id = i;
person.name = nameArray[i];
people[i] = &person;
}
person
는 01,230에 추가되고배열하지만 (VS2010에서) Watch 화면으로 이동하여 입력하십시오. people, 50
다음 사람을 추가 할 때와 마찬가지로 모든 슬롯에 동일한 person
이 표시되는 것처럼 모든 이전 변경됩니다. 여기서 내가 뭘 잘못하고 있니?
또한 특정 인물의 이름을 검색하려면 올바른 구문입니까?
people[0] -> name;
아니면 people[0][0].name
입니까?
감사합니다. 난 그냥 모든 칸에 같은 '사람'을 참조
삭제 된 질문에 대한 Sidenote : 삭제 한 질문에 대한 답변을 http://stackoverflow.com/questions/9485491/read-string-from-stdin-maintain-string-length 방금 작성했습니다. –
죄송합니다. 사이트에 대해 매우 생산적인 질문이 아닐 수도 있음을 느꼈습니다. –
신경 쓰지 마세요. 아이디어는 :'fscanf'를 호출하기 전에 전체'char [20]'를 모두 '\ 0'으로 설정하십시오. 'fscanf'가 리턴 한 후에'for (int i = 19; i> = 0; i--) {if (s [i] == '\ 0') s [i] = ''; else break;}'. –