변수에 배열 요소의 값이 할당되는 방법에 대한 간단한 질문. 내 코드가 최소한의 메모리를 사용하는지 확인하려고합니다.배열 요소에 C 변수 할당
미리 정의 된 구조체 배열이 있고 배열의 한 요소에 대한 참조를 만들려는 경우 변수를 값과 반대로 참조로 전달하도록하려면 어떻게해야합니까? 이 문제를 해결하기 위해 검색했지만 아마도 검색 문자열이 필요하지 않습니다. 다음과 같이
#myfile.h
typedef struct {
uint8_t abba;
uint8_t zabba;
} mystruct;
extern mystruct mystructs[2];
#myfile.c
mystruct mystructs[2] = {
{.abba=0,.zabba=1},
{.abba=2,.zabba=3}
};
void myfunc1() {
mystruct ms1 = mystructs[1];
printf("%d", ms1.abba);
ms1.zabba = 5;
}
void myfunc2() {
printf("%d", mystructs[1].abba);
mystructs[1].zabba = 5;
}
예를
에 대한그래서 내 질문은 : 나는 myfunc1의 MS1을 만들 때 , 그것은 mystructs 단지 참조 [1]? 또는 ms1에 요소를 복사합니까?
myfunc1과 myfunc2는 메모리 사용시 동일한 결과를 나타 냅니까?
ms1.zabba = 5 실제로 mystructs [1] .zabba를 업데이트 할 예정입니까?
나는 Peter Schneider와 Quentin의 답변을 모두 수락 할 수 있습니다. Peter는 어떻게 작동하는지 자세히 설명하고, Quentin은 ms1을 포인터로 만드는 예제를 제공합니다. – user3817250