さて、私が見逃している簡単な修正があると確信していますが、現在、私のコードは「A [i]-> key=0;」という行でセグメンテーション違反を引き起こしています。Record * Item部分はプログラムに必要なので、作業中の割り当てではこのように機能させる必要がありますが、ItemがRecordの非ポインターtypedefになるように変更すると、I A[i].keyを問題なく使用できます。StandInputがレコードへのポインターの配列に値を正しく割り当てることができるように、正しい方向に微調整する必要があります。ありがとう!
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;
}