Probleme mit Pointer-Paramentern...
-
Normalerweise schaffe ich solche Programme, aber in diesem Fall habe ich ein Blackout.
Warum funktioniert das erste Programm und das zweite nicht?
// Funktioniert #include<conio.h> #include<stdio.h> enum {falsch=0,wahr=1}; typedef bool bin; int test(bin *u) { return(*u); } void main() { bin u; u=1; test(&u); }
// Funktioniert nicht!!! #include<conio.h> #include<stdio.h> enum {falsch=0,wahr=1}; typedef bool bin; int test(bin *u) { return(*u); } void main() { bin *u; *u=1; test(u); }
Sicher einfach?
-
weil du beim zweiten kein Speicher für u reserviert hast
http://pw1.netcom.com/~tjensen/ptr/pointers.htm
btw.
1. gibt es kein bool in C! Du benutzt wohl einen C++ Compiler! In C99 gibt es _Bool und ein typedef in stdbool.h2. void main ist so nicht erlaubt und gut! Benutz int main
3. brauchst du den (nicht Standard) Header conio.h und den stdio.h Header inkludieren, da du ja in dem Fall nichts daraus benutzt und das so nur Compile-Zeit kostet.