Адрес определенного массива в C - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь выучить C, поэтому, выполняя некоторые упражнения, я столкнулся с проблемой, которую не могу понять.

Я создал массив символов buf [100] [100], в нем Я храню некоторые строки. Теперь я хотел бы изменить одну строку на другую с помощью команды strcpy. Но при попытке указать его целым числом (z) он не хочет работать. Однако, когда я вручную адрес массива со значением, он работает как задумано.

Кто-нибудь может дать мне объяснение этому?

Заранее спасибо, Сэм

код:

int main() {
    char buf [100][100];
    int i=0,j=0;
    int lijn;
    int x,k;
    int z;

    char stringN [100];
    FILE * fpointer = fopen("employees.txt","r");

    if (!fpointer) { return 1; }
    printf("regel nummer?:");
    scanf("%d",z);
    printf("nieuwe regel");
    scanf("%s",stringN);

    while(fgets(buf[i],100,fpointer)!=NULL){
        i++;
        j++;
    }


    strcpy(buf[z], stringN);
    strcat(buf[z], "\n");
    x=0;

    for (k=j;k>=1;k--){
        printf("%s",buf[x]);
        x++;
    }

    return 0;
}

1 Ответ

0 голосов
/ 08 января 2020
    scanf("%d",z);

неправильно. Вы должны передать адрес переменной, т.е.

    scanf("%d", &z);
...