Felmeddelandet ovan får jag där jag har följande kod:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
char c[4][4] = {
{'a','b','c','d'},
{'d','c','b','a'},
{'c','d','a','b'},
{'b','a','d','c'}
};
Jag får också varningar om "warning: address of local variable 's' returned"
Det tolkar jag som att addressen till strängen returneras? Koden jag får felmeddelandet på ser ut så här:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
void abc(const char* a) {
char s[strlen(a) + 1]; <-- Här får jag felet
// MER KOD HÄR EGENTLIGEN
}
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
char s[strlen(a) + 1]; <-- Här får jag felet
Det där funkar liksom inte. När du skapar en array så måste kompilatorn veta hur stor arrayen skall vara vid kompileringen. När du gör sådär så kan inte kompilatorn veta hur stor den skall göra arrayen, eftersom värdet av strlen(a) kan variera (det som står innom [ ] måste vara konstant). Nåt sånt här borde funka: