Problem z argumentami formalnymi

0

Mógłby mi ktoś powiedzieć czemu &(ampersant) nie działą jako argument funkcji. I przy okazji podpowiedzieć jak zrobić żeby funnkcja wykonywała operacje na obiekcie a nie na jego kopii??

#include <stdio.h>
#include <stdlib.h> //malloc
//#include "macierz.h"

struct macierz
{

    int liczbawierszy;
    int liczbakolumn;

};


// dlaczego ampersant nie działa
void parametrymacierzy(struct macierz &dane)
{
static int licznikmacierzy = 1;

    printf("podaj liczbe wierszy %i macierzy", licznikmacierzy);
    scanf("%i", &dane.liczbawierszy);
    printf("podaj liczbe kolumn %i macierzy", licznikmacierzy);
    scanf("%i", &dane.liczbakolumn);

}


int main()
{
struct macierz a1;
struct macierz a2;

    parametrymacierzy(a1);
    printf("liczba wierszy : %i a kolumn %i twoje macierzy", a1.liczbawierszy, a1.liczbakolumn);


return 0;
}

Dziękuje i pozdrawiam
Adam

0

U mnie działa.

0

Co znaczy "nie działa"? Poza tym:

kasiula@laptop:~/Pulpit$ gcc plik.c
plik.c:15: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
kasiula@laptop:~/Pulpit$ 

a reszty mi sie nie chcialo spr :p

0

W C, nie ma referncji. Dopiero w C++ są. W C używa się wskaźników:
void parametrymacierzy(struct macierz* dane);
parametrymacierzy(&a1);

1 użytkowników online, w tym zalogowanych: 0, gości: 1