그래, 내가 놓친 바로 그 해결책이 있겠지만, 지금은 내 코드가 "A [i] -> key = 0; " Record * Item 부분은 프로그램의 필수 항목이므로, 작업중인 할당에 대해이 방식으로 작업해야합니다. 그러나 Item을 Record의 포인터가 아닌 typedef가되도록 변경하면 A [i] .key는 문제없이 사용할 수 있습니다. standalput이 레코드에 대한 포인터의 배열에 값을 올바르게 할당 할 수 있도록 올바른 방향으로 넛지가 필요합니다. 감사!C에서 포인터를 통해 구조체 내의 변수에 값 지정
Item.h :
#include "stdio.h"
#include "stdlib.h"
typedef int keyType;
struct Record
{
keyType key;
int other;
};
typedef struct Record* Item;
void standInput(Item *A, int n)
{
int i, input;
for(i = 0; i <= n-1; i++)
{
A[i]->key = 0;
printf("%d ", A[i]->key);
}
}
홈페이지 :
#include "stdio.h"
#include "stdlib.h"
#include "Item.h"
int main()
{
int n;
Item *A;
printf("Enter a length for the array: ");
scanf("%d", &n);
A = (Item*)malloc(n * sizeof(Item));
standInput(A, n);
return 0;
}
당신은 확실히 그냥'Item'하지'항목 *'이며 : – keety