Autor Thema: C Code mit CC65 - und die nächste  (Gelesen 20394 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline matashen

  • Benutzer
  • Beiträge: 1.779
C Code mit CC65 - und die nächste
« am: Mo 19.05.2008, 22:12:17 »
nachdem ich immer noch kein C-Buch habe (speziell für den CC65 siehts da Mau aus) frag ich mich hier weiter durch.

Wie mach ich Stringarrays. will heiisen ich möchte eine Liste mit Zeichenketten machen. Nachdem aber in C ein String bereits eine Zeichenkette ist, raffs ich nicht ganz. Ich hätte jetzt sowas wie

register char feldname[2,12]={"123456789012","123456789012"};

aber da meckert der Compiler....

Gruß Matthias
Have you played Atari today ?!

Offline Dennis Schulmeister

  • Moderator
  • *****
  • Beiträge: 535
  • Do be do be do -- Sinatra.
Re: C Code mit CC65 - und die nächste
« Antwort #1 am: Mo 19.05.2008, 23:21:58 »
char * array_mit_char_pointern[10];
array_mit_char_pointern[0] = "....";

Die erste Zeile ist auf jeden Fall richtig. Bei der Zweiten bin ich mir gerade auch unschlüssig, ob man nicht mit malloc(...) arbeiten muss. Sollte aber auch so gehen.

Für den CC65 wirst du wohl kein Buch finden, jedes normale ANSI-C Buch sollte dir aber helfen. Im Internet gibt es auch jede Menge Tutorials, die für den CC65 genauso wie für jeden anderen C-Compiler gelten. Du must halt nur die Spezialitäten des CC65 im Hinterkopf behalten, wie kein DOUBLE oder FLOAT. Wäre ja auch ziemlich unperformant auf einem 6502er ...

Darf man eigentlich fragen, was du programmierst? ;)

Gruß,
Dennis 8)
Wenn ich mal groß bin, will ich bei Atari arbeiten.

Offline Dennis Schulmeister

  • Moderator
  • *****
  • Beiträge: 535
  • Do be do be do -- Sinatra.
Re: C Code mit CC65 - und die nächste
« Antwort #2 am: Mo 19.05.2008, 23:27:30 »
Ok, habe das gerade mal getestet. Wollte das jetzt wissen. Der GCC/Linux hat folgenden Code anstandslos compiliert und ausgeführt:

#include <stdio.h>

int main () {
    char* strings[10];
    int i;

    for (i = 0; i < 10; i++) {
        strings[i] = "Test\n";
        printf("%s", strings[i]);
    }

    return 0;
}

Ist auch logisch, denn ein in " eingeschlossener String ist in Wirklichkeit ein Zeiger auf die Zeichenkette.

Gruß,
Dennis 8)
Wenn ich mal groß bin, will ich bei Atari arbeiten.

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C Code mit CC65 - und die nächste
« Antwort #3 am: Mo 19.05.2008, 23:57:33 »
Ich bastel was für den Lynx...

fragen darfst du ;D

Mit Spieleprogrammierung hab ich grundsätzlich Ahnung, hab da schon ein paar Projekte(oder nur mitgewirkt)

Nur hab ich weder in C noch aufn Lynx geproggt. Hat mich halt gereizt.
Ist nichtmal so schwer, kann halt C nur vom Lesen von Democode und versuchen das zu verstehen. Für den Rest hab ich euch :-D

Ursprünglich wollt ich eine art BattleIsle fürn Lynx machn, aber jetzt mach ich was ganz einfaches um mich mit C und dem Lynx vertraut zu machen. Dann könnt evtl noch BI kommen....
mal sehen...

Gruß Matthias
Have you played Atari today ?!

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C Code mit CC65 - und die nächste
« Antwort #4 am: Di 20.05.2008, 00:04:45 »
char * array_mit_char_pointern[10];
array_mit_char_pointern[0] = "....";

grad getestet.....stand by
Have you played Atari today ?!

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C Code mit CC65 - und die nächste
« Antwort #5 am: Di 20.05.2008, 00:49:26 »
Läuft nicht...

beim pointer kommt immer wieder ne Fehldarstellung, was auf einen Zugriff ins Nirvana des Speichers deutet.

Gruß Matthias

Have you played Atari today ?!

guest2120

  • Gast
Re: C Code mit CC65 - und die nächste
« Antwort #6 am: Di 20.05.2008, 11:07:17 »
register char feldname[2,12]={"123456789012","123456789012"};

Fur Lynx programmieren mit : CC65
char feldname[2][12]={"123456789012","123456789012"};
(2 elements mit 12 character)
oder

char *feldname[2]={"123456789012","123456789012"};
(2 elements, memory allocation macht bei compiler)

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: C Code mit CC65 - und die nächste
« Antwort #7 am: Di 20.05.2008, 23:31:53 »
Wow

Hints from the BIG-Master himself.... ;D

Thanks  ;)


Greatings Matthias
Have you played Atari today ?!