first function
내에서 호출되거나 수행되는 second function
에 구조체 배열을 전달하는 방법을 배우고 싶습니다. 내 목표는 수정/임의의 구조체의 내용을 second function
에서 변경하는 것입니다. 아래의 코드는 작동하지만 불행히도 내가 원하는 것을 정확히 수행하지는 않습니다. second function
내의 임의의 구조체에 액세스해야합니다. 즉, second function
내에서 main
만 번을 호출하고/실행하여 for
루프를 사용하지 않고 모든 구조체 (for
루프 사용)를 처리하려고합니다.구조체 배열을 함수에 전달 하시겠습니까?
아래 코드의 second function
은 passByReference_inner
입니다.
array_of_struct.h :
struct card
{
int face;
int nose;
};
typedef struct card HEAD ;
/* prototype */
extern void passByReference(HEAD **c); /* first function */
extern void passByReference_inner(HEAD *c); /* second function */
제 기능 : (passByReference)
#include <stdio.h>
#include "array_of_struct.h"
void passByReference(HEAD **c)
{
passByReference_inner (*c); /* second function */
}
초 기능 : (passByReference_inner)
#include <stdio.h>
#include "array_of_struct.h"
void passByReference_inner(HEAD *c)
{
c->face = (c->face) + 1000;
c->nose = (c->nose) + 2000;
}
주 : 당신이 무엇을하려고 생각
#include <stdio.h>
#include "array_of_struct.h"
int main(void)
{
int i;
static HEAD c[12];
static HEAD *cptr[12];
for (i = 0; i < 12; i++)
{
c[i].face = i + 30;
c[i].nose = i + 60;
cptr[i] = &c[i];
}
for (i = 0; i < 12; i++)
{
passByReference(&cptr[i]); /* first function */
}
return 0;
}
I는 C 언어 만 값, 참고로 통과 할 수있는 모든 질문 –
...이 같은 있었으면; 그러나 포인터를 전달할 수 있습니다. main()에서 – user3629249
, 변수 'cptr'및 모든 사용법을 main()의 '& c [i]' – user3629249