Zugriffsverletzung
-
Besser ist es aber, man schreibt sich für sowas ein Makro.
#define CHAR_SIZE (1+sizeof(char)-1-sizeof(char)+1*1*sizeof(char)/1/sizeof(char)) int x[10000*CHAR_SIZE];
-
würde es mit nem const int machen, da #define keine typprüfung macht, aber ansonsten ok
-
groovemaster schrieb:
Besser ist es aber, man schreibt sich für sowas ein Makro.
#define CHAR_SIZE (1+sizeof(char)-1-sizeof(char)+1*1*sizeof(char)/1/sizeof(char)) int x[10000*CHAR_SIZE];Sehr umsichtiges define: Du solltest aber zusätzlich sicherstellen, daß sizeof(char) ungleich 0 ( Ziffer null == 1-1 ) ist!
(Divison durch null ist verboten )
Außerdem bist DU dann maschinen und plattformunabahängig :p
-
groovemaster schrieb:
Besser ist es aber, man schreibt sich für sowas ein Makro.
#define CHAR_SIZE (1+sizeof(char)-1-sizeof(char)+1*1*sizeof(char)/1/sizeof(char)) int x[10000*CHAR_SIZE];Poste sowas lieber nicht. Die Unerfahrenen kopieren sich das weil sie denken du meinst das ernst.
-
groovemaster schrieb:
#define CHAR_SIZE (1+sizeof(char)-1-sizeof(char)+1*1*sizeof(char)/1/sizeof(char)) int x[10000*CHAR_SIZE];schon ne nette idee.
ich finde es aber eleganzer, wenn man es so ansetzt:#define CHAR_SIZE (sizeof(long)?sizeof(long int(&)[10])/sizeof(unsigned long(&)[10]):sizeof(short int(&)[10])/sizeof(unsigned short(&)[10]))das hat zwei riesige vorteile:
a) mit dem ?: wird erstmal gefragt, ob sizeof(long) überhaupt ungleich 0 ist, und falls sizeof(long) tatsächlich 0 ist, wird die gleiche berechnung mit short gemacht. das ist sehr sicher, da es zur zeit keinen compiler auf dem markt gibt, wo sizeof(long) und sizeof(short) beide 0 sein.
b) ich benutze nicht wie du fahrlässigerweise sizeof(char), um doch nur sizeof(char) auszurechnen, um einem zirkelschluss zu entgehen.
-
lol
MfG SideWinder
-
Darf ich auch mal?
#define CHAR_SIZE 1
-
FireFlow schrieb:
Darf ich auch mal?
#define CHAR_SIZE 1das ergibt gar keinen sinn, weil:
a) man dann immer 1 statt CHAR_SIZE schreiben würde und CHAR_SIZE unnötig wäre.
b) du dich auf eine zusage beziehst, die bei fehlerhaften compiler nicht immer verläßlich sein muß.
-
OK volkard, hast mich überzeugt. Deine Methode ist tatsächlich besser, und zudem eleganter.
-
ROFL
