Hej!
Roliga problem som ska vara "enkla", men har suttit hela dagen med detta och blir inte klok.
(Yupp det är klart, detta ska man inte jobba med i framtiden. )
Har kollat på många exempel och även försökt att läsa mig till hur C har hand om sina char "strängar".
Är van vid C++ och är i stort sett okänd med C sättet (vilket är bra att kunna om man vill göra något annat intressant).
Vad jag försöker göra är att mata in information i en "char string array" (vilket är en 2d array?) för att sedan skicka vidare till funktionen som loopar igen och sedan skriver ut informationen i en log fil.
static char info_log[15][80];
void write_log(char *log[]) {
FILE *fp;
fp = fopen("log.txt", "a");
int i;
for (i = 0; log[i] != '\0'; i++) {
fputs(log[i], fp);
}
fclose(fp);
}
// int main
strcpy(info_log[0], "Hello");
strcpy(info_log[1], "This is a test");
strcpy(info_log[2], "I surely wonder if this works correctly.");
write_log(info_log);
Error output:
main.c:177:3: warning: passing argument 1 of ‘write_log’ from incompatible pointer type [enabled by default]
write_log(info_log);
^
main.c:77:6: note: expected ‘char **’ but argument is of type ‘char (*)[80 ’
void write_log(char *log[]) {
^
Har kollat blandannat denna sidan tutorialspoint.com vilket jag gillar, lättförstådd och bra information.
Kompilerar med GCC på linux, vilket ger sådär intressanta felmeddelanden.
Char med "strings" och arrays gör mig en del vilsen om hur jag ska hantera dem.
Finns såklart logik här också, bara jag som inte förstått det riktigt.