Forum: Compiler & IDEs Fehlermeldung


von Balazs J. (balazs)


Lesenswert?

Hallo zusammen,

anbei ein Programmsegment:
void InputStr(char *buffer, unsigned short maxlen, int x, int y)
{
  short key;
  unsigned short i = 0;
  unsigned short j = 0;

  buffer[0] = 0;
  char lis[8];
  char *num;
  char num1[8];
  unsigned short anz;
  unsigned short anz1;
//  float zahl;
  for(j =0;j<8;j++)
     lis[j] = 0;
     num1[j] = 0;


  do
    {

      MoveTo (x+50,y);
      printf ("%s_  ", buffer);
        // Note that two spaces are required only if the F_4x6 font is 
used
      key = ngetchx ();
      if (key >= ' ' && key <= '~' && i < maxlen)
        buffer[i++] = key;
      else if (key == KEY_BACKSPACE && i)
        i--;
      buffer[i] = 0;
     } while (key != KEY_ENTER);

        num = strpbrk(buffer,"=");
        anz = strlen(buffer)-strlen(num);
        anz1 = strlen(buffer)-strlen(num+1);

          strncpy(lis,buffer,anz);

          for (j=anz1;j<=strlen(buffer);j++)
          strncpy(num1,buffer[j],1);

es funktioniert bis zur letzten Zeile, jedoch die letzte Zeile!!
Ich bekomme die Fehlermeldung:

Passing argument 2 of '*(*200u + 2484u)' makes pointer from integer 
without a cast.
Was ist hier falsch??

Kann mir jemand helfen, und danke im voraus

von Bernhard R. (barnyhh)


Lesenswert?

>>          strncpy(num1,buffer[j],1);


buffer[j] gibt den Inhalt des j.Elements von buffer an, aber nicht 
seine Adresse!

Es müßte richtig heißen:
          strncpy(num1, buffer + j, 1);


Egal, ob das Ganze sinnvoll ist oder nicht.

Bernhard

von balazs (Gast)


Lesenswert?

ist mir auch klar, ich wollte lediglich von einem string (z.B "=123") 
nur den Zahlteil haben, also nur "123", hatte aber keinen anderen Befehl 
zur Verfügung. Jedenfalls vielen Dank für Deine Antwort, Gruss Balazs 
(weiss allerdings immer noch nicht wie man so macht)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.