Zitat Zitat
Original geschrieben von Jesus_666
Daß ich einen int deklariere bedeutet nicht, daß auch der Speicher an der Stelle vorbereitet wird; sonst wäre malloc() überflüssig. Ich lege einfach fest, in welchen Speicherbereich ich was schreiben will.
malloc wird auch nur verwendet, wenn du Speicher für ein struct oder ein Array anlegen willst (z.B: string = char-Array), wenn du einfach einen int deklarierst, wird genau ein int auch reserviert (angelegt natürlich bei initialisierung), oder hast du jemals malloc für i = 5 verwendet?
Der Fehler liegt imo beim Compiler, denn dieser Code:

Code:
#include <stdio.h>
#include <stdlib.h>

enum { S_None = 0, S_Barrel = 1, S_Top = 2, S_Under = 4, S_Grip = 8, S_Stock = 16 }; //Spaces
int enmSpaces;

int main(void)
{
	enmSpaces = S_Barrel | S_Grip | S_Top;
	char * acharTempChar;
	acharTempChar = (char*) malloc(256);
	if(acharTempChar!=NULL)
	{
		sprintf(acharTempChar, "%i", enmSpaces);
		printf("%s\n",acharTempChar);
		free(acharTempChar);
	}

}
gibt bei mir 11 aus.