Mehrfacharray an Funktion übergeben?

Gast #1550142
Lesenswert?

Hallo, ich habe ein Problem und zwar habe ich ein Mehrfach array
'strings [25][80]' in das ich z.b. zehn namen mit max 80 zeichen 
reinschreibe und möchte es dann an eine funktion übergeben und die namen 
dann alphabetisch sortieren aber ich kriege die übergabe nicht hin weil 
ich die ganze zeit eine fehlermeldung diese fehlermeldung kriege.

Hier ist mein Quellcode:
#include "stdafx.h"
#include <string.h>
void String_einlesen();
void sortieren(char *ptr);
int  a=12;
char strings[25][80];
int count=0;

int main (void)
{
String_einlesen();
sortieren(strings[0]);

while (1)
{

}
  return 0;
}

void String_einlesen()
{
int ch=0;
while(ch=(getchar()) != 'Y')
{
fflush(stdin);
scanf("%s",strings[count]);
fflush(stdin);
count++;
}
}

void sortieren(char *ptr)
{
if(strcmp(ptr[1],ptr[0])>0)
printf("yes");
else
printf("no");
  }


und das ist die Fehlermeldung:
error C2664: 'strcmp': Konvertierung des Parameters 1 von 'char' in 
'const char *' nicht möglich
Persönliche Seite #1550147
Lesenswert?

Nun, der an "sortieren" übergebene Parameter ist vom Typ char*. Den 
dereferenzierst Du beim Aufruf von strcmp, übergibst also zwei einzelne 
chars. strcmp aber erwartet zwei char-Pointer, nicht zwei chars.

Abhilfe: Korrigiere den an "sortieren" übergebenen Parameter zu char**, 
und rufe "sortieren" mit einem korrekten Parameter auf. Derzeit 
übergibst Du einen Pointer auf char, Du willst aber Pointer auf Pointer 
auf char (char**) übergeben.

Literaturhinweis:
Brian Kernighan & Dennis Ritchie "Programmieren in C", zweite Auflage, 
Hanser-Verlag.
Gast #1550158
Lesenswert?

>Derzeit übergibst Du einen Pointer auf char, Du willst aber Pointer auf >Pointer 
auf char (char**) übergeben.
da will er aber nicht, er wille einen pointer auf ein Array übergeben,
also char array[][80]

auf die Zeilen kann er dann mit array[i] zugreifen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren