ich bin gerade dabei C zu lernen, habe 3 Bücher die ich nun nach und nach durchackere, aber ich habe jetzt schon ein Problem und würde gerne wissen, was passiert und warum ich in einen Speicherüberlauf komme.
Vorab, ich bin C Anfänger also erwartet nicht zuviel!
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
typedef enum
{
LOG_DEFAULT,
LOG_INFO,
LOG_ERROR,
LOG_DEBUG
}LOG_LEVEL;
/**
@brief LOG-Messages for File Output
@param LOG_LEVEL, Message
@return none
*/
void log_messages(LOG_LEVEL line, char *message)
{
// welche LOG_LEVEL
// Linie wird ausgelesen
printf ("%i \n", line);
// haenge didel an char message
// ----> genau hier gibt es ein Problem <----
strcat(message,"didel");
// pruefe
if( (line==LOG_INFO) || (line==LOG_ERROR))
{
// gebe aus
printf ("%s \n", message);
}
}
int main (void)
{
// definiere einen zeiger
int *f;
// defeniere einen integer
int f1 = 22;
// uebergebe die speicherstelle
f = &f1;
// definiere eine character variable
char neuchar[9] = "neuerwer";
// definiere einen integer
int one = 22;
// definiere eine character variable
char message[75] = "hallo Welt";
// funktion per call by value
log_messages(LOG_ERROR,"DIES IST EINE NACHRICHT!");
// gebe die variable message aus
printf("ENDE-> %s \n", message);
// EXIT Status
return 0;
}
Aber eher zu meiner Frage:
Warum bekomme ich einen
Code: Alles auswählen
Speicherzugriffsfehler (Speicherabzug geschrieben)
Was habe ich denn da wieder einmal Falsch verstanden?
Vielen Dank fürs Lesen!