kalkulator ONP

0

Witam.

Jestem bardzo początkująca i mam problem, którego niestety nie umiem rozwiązać. Mam do zrealizowania problem kalkulatora ONP , tablica stworzonych struktur znak ma mieć priorytet int i przechowywać zczytaną z argv tablicę znaków, chciałabym wiedzieć jak należy wpisać i odczytać z danego elementu tablicy znak, tzn konkretnie jak wpisać do znak[k].znak1. Poza tym chciałabym wiedzieć dlaczego kompilator mówi mi widząc znak[k].znak1 że znak[k] musi być wartoścą zmienialną, a jeżeli podam *znak[k].znak1 (tak jak w powyższym kodzie) to wpisuje mi do konkretnego znak1 krzaki. Zaznaczę jeszczę, że nie mogę używać string.h i operacji na stringach, tylko na tablicy znaków
Z góry dziękuję za pomoc

To jest kod:

#include <stdio.h>
#include <stdlib.h>

struct t_znak
{
int priorytet;
char znak1[20];
};

struct t_znak ** znak ;

void main(int argc, char* argv)
{
znak= (struct t_znak **)malloc(argc*sizeof(int));
for (int i = 0; i < argc; i++)
znak[i] = (struct t_znak *)malloc(sizeof(struct t_znak));

int k = 0;

for (int i = 1; i < argc; i++)
{
if (argv[i] = "(")
{
znak[k]->priorytet = 0;
*znak[k]->znak1 = argv[i];
k++;
}
else
if ((argv[i] = "+") || (argv[i] = "-") || (argv[i] = ")"))
{
znak[k]->priorytet = 1;
*znak[k]->znak1 = argv[i];
k++;

}
else
if ((argv[i] = "*") || (argv[i] = "/") || (argv[i] = "^"))
{
znak[k]->priorytet = 2;
*znak[k]->znak1 = argv[i];
k++;

}
else
{
znak[k]->priorytet = -1;
*znak[k]->znak1 = argv[i];
k++;

}
}

for (int i = 0; i < argc; i++)
{
printf("Znak: %s, Priorytet: %d\n", znak[i]->znak1, znak[i]->priorytet);
}

for (int i=0; i<argc;i++) {free(znak[i]);}
free(znak);
system("PAUSE");

0
  1. operator = jest operatorem przypisania (nie porównanie)
  2. Porównywanie c-string strcmp
  3. Przypisanie c-string strcpy
  4. Zapoznaj się z przydatną funkcją strdup

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