wymagany wskaznik ktorego nie wiem jak uzyc

0

Witam . Oto moj kod

#include<iostream>
using namespace std;
void kopiuj(char cel[], char zrodlo[])
{
int n=0;
while (zrodlo[n] != '\0')
{
n++;
}
for (int i = 0; i < n; i++)
{
cel[i] = zrodlo[i];
}
}
int main()
{
char tab[10];
char dfg[10];
int n = 0;

for (int i = 0; i < 10; i++)
{
cin >> tab[i];
}
kopiuj(dfg[10], tab[10]);
for (int j = 0; j < 10; j++)
{
cout << dfg[j] << endl;
}
system("pause");
return 0;
}

Kompilator domaga sie uzycia wskaznika jednak nie potrafie go zastosowac poniewaz znam tylko jego definicje. W innych funkcjach jakie pisalem domagal sie stalej wartosci. Wie ktos co nalezy zrobic zeby uniknac takich bledow i wszystko dzialalo ok? Prosze o pomoc i wyrozumialosc - jestem poczatkujacy.

2
  1. wrzucaj kod w znaczniki code
  2. tu jest twoj kod ktory sie kompiluje http://ideone.com/ac2tLR
    2.1) zobacz definicje parametrow w funkcji
    2.2) przekazywales char a nie tablice (musisz przekazac nazwe a nie jakis obiekt
    2.3) miales < zmaiast << w cout
    2.4 sztywne liczby (np 10) jest zle
  3. jak powinienes to zrobic
    3.1) uzyc vectora (googluj stl vector c++)
    3.2) uzywac stringa

tak na poczatek ;)

0

na dodatek źle kopiujesz, nie kopiujesz i nie wstawiasz końcowego zera.
Zdecyduj się czy to są stringi zakończone zerem czy tablice o stałej długości 10 znaków.

0

Czy jest mozliwe utworzenie tablicy o dowolnej liczbie elementow w tym miejscu

 char tab[10];
    char dfg[10];

czyli tablicy n-elementowej ktora poda uzytkownik?

  kopiuj(dfg, tab);

a w funkcji

 void kopiuj(char *cel, char *zrodlo) 
  • oznacza to ze tablice bez zaznaczonego elementu tablicy sa wskaznikami jak dobrze pamietam?
    Ucze sie na laborki i nic mi nie wiadomo czy mozna uzywac stringow.
0

tak jak ci proponował @fasadin jeśli operujesz na napisach użyj std::string, które za ciebie będzie robiło zarządzanie pamięcią i ma dużo innej dodatkowej funkcjonalności.

1

Czy jest mozliwe utworzenie tablicy o dowolnej liczbie elementow w tym miejscu

tak, poczytaj o new, ale gole new jest juz zlym nawykiem. Powinienes uzyc smart pointerow ktore zostaly dolaczone w c++11

czyli tablicy n-elementowej ktora poda uzytkownik?

ale znacznie lepiej do tego uzyc vector (pisalem Ci o tym) nikt nie pracuje na golych tablicach

  • oznacza to ze tablice bez zaznaczonego elementu tablicy sa wskaznikami jak dobrze pamietam?

nie rozumiem o czym w ogole piszesz, wez jakis kurs o wskaznikach i przeczytaj

zakazywac czegos w programowaniu zeby sie "nauczyc" jest... zle

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