Błąd: nieprawidłowe przypisanie tablicy

Błąd: nieprawidłowe przypisanie tablicy
G1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0
Kopiuj
class nazwa {
	public: char n[20];
};
int main(){
	nazwa name;
	char k[20];
	name.n=k;
...

Zależy mi na tym by tablica była w klasie.
Dziwny błąd mi się zdaje. Proszę mi napisać: Co zrobić by nie wyskakiwał?

MY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1107
3

Nie tak się kopiuje tablice. W tagach masz C++, więc użyj np. takiego https://en.cppreference.com/w/cpp/string/basic_string i wtedy będziesz miał dostępny operator przypisania.

Jeśli natomiast bardzo chcesz użyć tablic w stylu C (z zeszłego stulecia) to powinieneś użyć tego https://en.cppreference.com/w/cpp/string/byte/strcpy

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
5

Link dla twojego nauczyciela C++ (niezalecane początkującym).

Generalnie lepiej by było jakbyś użył bardziej współczesnych elementów C++ (C++11 - standard z 2011 roku).

Kopiuj
#include <string>
#include <array>

class nazwa {
public:
    std::array<char, 20> n;
    std::string s; // zalecana alternatywa dla napisów dostępna od 1994 roku
};

int main(){
	nazwa name;
	std::array<char, 20> k = { 'a', 'b' };
	name.n = k;
    name.s = "szła dzieweczka do laseczka";

I jeszcze aka uwaga. Nie używaj języka polskiego w kodzie. Nawet jeśli twój angielski jest nadal kulawy.
Pisanie po angielsku powinno być odruchem.

G1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

Zależy mi na szybkim działaniu i by mało miejsca w pamięci zajmowało.

Marius.Maximus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2205
0

Teraz jest idealnie :

  • czas uruchomienia 0s
  • ilość zajmowanej pamięci 0B
    😄

najlepiej wrzuć kompletny kod na https://godbolt.org/
to chociaż błąd zobaczymy

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
3
gaborek1987 napisał(a):

Zależy mi na szybkim działaniu i by mało miejsca w pamięci zajmowało.

Z rekomendowanym rozwiązaniem w tym zakresie nie ma najmniejszego problemu.

Wiem, że z twoim obecnym skillem, wydaje ci się, że "postawienie przecinka" w odpowiednim miejscu zmieni coś istotnie (jak byłem początkujący też tak miałem).
Prawda jest taka, że kompilator jest tak bardzo dopracowany, że optymalizację potrafią "zrozumieć" kod i przekształcić go w coś bardziej optymalnego (przykład).
Ważne, żebyś wiedział, że optymalizację trzeba włączyć.

Ergo w twojej obecnej fazie nauki nie przejmuj się takimi bzdurami, co składniowo jest szybsze.
Opanuj najpierw samo programowanie i język a dopiero wtedy będziesz miał szanse właściwie zrozumieć jak naprawdę optymalizować kod.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.