undefined reference to #insertion sort3'



  • Hallo Coder,
    seit geraumer Zeit programmiere ich in C mit Code::Blocks, SVN 7041. Bin mir nicht sicher ob ich in den Compiler settings noch etwas falsc eingestellt habe.

    Bekomme bei dem Code immernoch eine Fehlermeldungin der 'main()':

    #include <stdio.h>
    #include <string.h>
    
    #define MaxNameSize 14
    #define MaxNameBuffer MaxNameSize+1
    #define MaxNames 8
    
    int main(){
    void insertionSort3(int, int, int max, char[][max]);
    
    char name[MaxNames][MaxNameBuffer] = {"Taylor, Victor", "Duncan, Denise",
    "Ramdhan, Kamal", "Sigth, Krishna", "Ali, Michael", "Sawh, Anisa", "Khan, carol", "Owen, David"};
    
    insertionSort3(0, MaxNames-1, MaxNameBuffer, name);// :warning: fehlermeldung
    
    printf( "\nAlle sortierten Namen:\n\n" );
    
    for (int h = 0; h < MaxNames; h++)
       printf( "%s\n", name[h] );
    }
    

    Kann es sein das der Code nicht den c99 unterstützt und wenn ja, in welcher Programmierumgebung funktioniert die C99 und die (neue) C++11, C++14?

    Kann aber auch sein das hier im Code etwas falsch programmiert habe?!

    Vielen Dank im vorraus
    Alumi


  • Mod

    Der Fehler kommt vom Linker, nicht vom Compiler. Das Programm ist (syntaktisch) korrekt, aber du machst die Funktion insertionSort3 nur bekannt, du definierst nirgendwo den Inhalt dieser Funktion.

    Aus dem Kontext vermute ich mal, dass du gar nicht vor hast, eine Funktion namens insertionSort3 selber zu programmieren? Sondern dass diese Funktion aus irgendeiner Programmsammlung stammen soll?



  • C99 ist kein C++.
    C99 ist C.
    C ist kein C++.

    Du rufst eine (Nichtstandard)Funktion insertionSort3 auf, der Linker weiß aber nicht, wo der Code dazu zu finden ist, da du die Funktion insertionSort3 nur deklariert aber nicht definiert hast.

    Funktionsdeklarationen (Prototypen) legt man global an und nicht lokal wie du in main.
    Deine max-Dimension im Prototypen ist Unsinn und wird nicht so funktionieren, wie du es dir vielleicht denkst.


Log in to reply