zeiger gleich klassen zeiger setzen
-
Also ich möchte einen Zeiger der an die funktion übergeben wird an den privaten zeiger übergeben nur da bekomm ich nen absturz zur laufzeit.
wie umgehen?#include <iostream> class Automatic { public: Automatic(char *); private: char *p_zc_var; }; Automatic::Automatic(char *zc_var) { *zc_var=*p_zc_var; //Absturz? } int main() { char var= 'z'; Automatic objekt3(&var); return 0; }
-
Dein Pointer in der Klasse ist noch undefiniert und du versuchst ihn zu dereferenzieren -> Absturz
-
Hi,
hier übergibst du aber nicht einen Zeiger an deinen privaten Zeiger:Automatic::Automatic(char *zc_var) { *zc_var=*p_zc_var; //Absturz? }Sondern umgekehrt !
The-Kenny hats auch schon gesagt, du darfst nicht nirgendwohin-zeigende-Zeiger derefernzieren.
Wenn schon so:
Automatic::Automatic(char *zc_var) { p_zc_var = zc_var; }Aber auch schmarrn. Wieso nicht ganz einfach so:
class Automatic { public: Automatic(char ); private: char p_zc_var; }; Automatic::Automatic(char zc_var) { p_zc_var = zc_var; } int main() { char var= 'z'; Automatic objekt3(var); return 0; }Edit: Tags vergessen ...