从函数中访问结构数组

时间:2017-04-12 19:50:21

标签: c arrays struct

我试图在我的代码中解决一个问题...我在C程序中是一个小小的新手,对不起,如果我不能很好地解释我的问题,但它是我第一次在stackoverflow上提出一个问题

所以我的程序中有这个代码:

typedef struct contact {
    int iD;
    int age;
    char phone1[15];
    char phone2[15];
    char contactFirstName[20];
    char contactLastName[20];
    char contactCompany[30];
    char contactAddress[40];
    char contactCity[20];
    char contactState[20];
    char contactCountry[20];
    char contactPostalCode[20];
    char contactEmail[30];
    char contactWeb[50];
}contact;

int lines=0;
void printArray(contact *array, int n);
char* sortFieldMenu();
char* sortTypeMenu();
void mainMenu();
char* searchFieldMenu();
contact* readFile(char*path);

int main(void){
    system("play -n synth 0.1 sin 1880 | echo -e ""\a"" ");
    char* filePath = "contact.csv";

    contact* inArray = (readFile(filePath));
    printf("\n Debug First Name: %p \n",inArray[1].age); 

    printf("Debug.......");
    return 0;
}

contact* readFile(char *path){
    int i, count;
    char ch;
    FILE* fp = fopen(path, "r");
    if (fp == NULL) {
        fprintf(stderr, "\n Erro ao abrir o ficheiro de !\n");
        exit(1);
    }
    while(!feof(fp)){
        ch = fgetc(fp);
        if(ch == '\n'){
            lines++;
        }
    }
    printf("Number of Lines: %d \n", lines);
    contact inArray[lines];
    rewind(fp);

    for(i=0;i<=lines-1;i++){

        count++;
        fscanf(fp, "%d,%[^,],%[^,],%d,%[^,],%[^,],%[^,],%[^,],%[^,],%,],%
               [^,],%[^,],%[^,],%s\n", &inArray[i].iD, 
               inArray[i].contactFirstName,                             
               inArray[i].contactLastName, &inArray[i].age, 
               inArray[i].contactCompany, inArray[i].contactAddress, 
               inArray[i].contactCity, inArray[i].contactState,                 
               inArray[i].contactCountry,
               inArray[i].contactPostalCode,
               inArray[i].phone1, 
               inArray[i].phone2,inArray[i].contactEmail,
               inArray[i].contactWeb);
    }

    printArray(inArray, lines);
    fclose(fp);
    return inArray;
}

我试图访问(打印)主函数上的inArray元素。我知道我不能从函数返回一个数组,只是指向该数组的指针。 主要目标是读取.csv文件并将数据放入一个结构数组(inArray)初始化该函数,并返回指向该数组的指针。

我试图在main函数中访问该数组,并打印一个元素(inArray [1] .age),但是出了点问题。

任何帮助都会被指定。

0 个答案:

没有答案