tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
517
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sunmania sunmania ist offline Mitglied
    Registriert seit
    Jun 2007
    Beiträge
    24
    hallo,

    ich habe folgendes Problem. ich habe ein Programm in C geschrieben und wenn ich es ausführen will, erscheint "Speicherzugriffsfehler" auf dem Bildschirm. Warum:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    #include <stdio.h>
    #include <string.h>
     
    main()
    {
    printf("\33[2J");
    printf("\33[01;01H");
    char cdparanoia[200];
    char lame[300];
     
    int t;
    puts ("CD-ACTIVE RIP        V 0.0.1\n");
    puts ("================================\n");
    printf("Anzahl der Tracks: ");
    scanf ("%1f",&t);
    int z;
    for (z=1.0f;z<=t;z++)
     {
     strcpy (cdparanoia, "cdparanoia ");
     strcat (cdparanoia, z);
     strcat (cdparanoia, " ");
     strcat (cdparanoia, z);
     strcat (cdparanoia, ".wav"); 
     strcpy (lame, "lame ");
     strcat (lame, z);
     strcat (lame, ".wav ");
     strcat (lame, z);
     strcat (lame, ".mp3");
     system (cdparanoia);
     system (lame); 
     }
    return 0;
    }

    Bildschirmausgabe:
    Code :
    1
    2
    3
    4
    5
    6
    
    CD-ACTIVE RIP           V 0.0.1
     
    ================================
     
    Anzahl der Tracks: 1
    Speicherzugriffsfehler
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Was benutzt du denn für einen Compiler? Also mein Compiler (GCC 4.1.2) zeigt 4 Warnungen an. Diese solltest du alle verhindern.

    Du solltest dir nochmal überlegen welche Typen die Variablen haben und welchen Typ die Argumente der Funktionen haben.
    Code c:
    1
    2
    
      int t;
      scanf ("%1f",&t);
    Hier gibst du an, dass scanf einen Float-Wert mit einer max. Breite von 1 einlesen soll (also max. eine Ziffer), übergibst aber einen Zeiger auf einen Integer? Das passt nicht zusammen.
    Code c:
    1
    2
    
    int z;
    for (z = 1.0f; ...)
    Du definierst z als Integer, weist aber einen Float-Wert zu? Warum? (PS: Das ist hier nicht so schlimm, weil der Compiler das implizit castet, aber anscheinend hast du damit ziemliche Schwierigkeiten).

    Gruß
    Geändert von deepthroat (25.06.07 um 10:16 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. [C++] Speicherzugriffsfehler
    Von FBIagent im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 26.03.08, 13:16
  2. Speicherzugriffsfehler
    Von NoPanic2007 im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 11.09.07, 11:11
  3. C++ SDL Speicherzugriffsfehler
    Von kle-ben im Forum C/C++
    Antworten: 11
    Letzter Beitrag: 09.12.05, 19:27
  4. Cedega - Speicherzugriffsfehler?
    Von _henrik im Forum Linux & Unix
    Antworten: 0
    Letzter Beitrag: 22.07.05, 13:26
  5. Speicherzugriffsfehler
    Von vaporizer im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 27.05.04, 10:02