strncpy zu viele Argumente



  • Guten Tag.

    Ich schreib im Moment an einem Programm welches eine eingegebene Integerzahl in eine Pixelmatrix (8x5) anzeigt.

    Also zum Beispiel:
    12 =
    ...X. .XXX.
    ..XX. X...X
    .X.X. ....X
    ...X. ...X.
    ...X. ..X..
    ...X. .X...
    ...X. X....
    ...X. XXXXX

    So. Als erstes habe ich Konstanten (2D Chararray) geschrieben welche diese Matrix für jede Zahl beinhaltet.

    Jetzt habe ich eine Funktion geschreiben die für jede eingegebene Zahl die richtige Pixelmatrix zurückgibt und jetzt muss ja jede Pixelmatrix hintereinander angezeigt werden (wie oben). Somit habe ich ein weiteres Array (1D Chararray) erzeugt welches 8 (Index) Zeilen hat. Jetzt wollte ich nun die erste Zeile von der ersten Zahl ins 1D Array speichern und dahinter die erste Zeile von der zweiten Zahl usw.

    Mein Funktion sieht nun so aus:

    int fillPixelLineWithInt(int int_input, pixel_int_line_t *char_output)
    {
    	int int_output;
    	char* string_input;
    	const pixel_font_t *zeichen;
    
    	pixel_font_t dump; //Dummy zum kopieren des char_outputs
    
    	//Ausgabe ergibt sich aus dem Logarithmus von 10 (+1 weil erste Stelle = 0)
    	int_output=log10((double)int_input)+1;
    
    	//Eingabechar Array erstellen mit Stellenanzahl als Arrayanzahl
    	string_input = new char[int_output];
    
    	//Integer in String kopieren zum Logarithmus 10 (Dezimal)
    	itoa(int_input,string_input,10);
    
    	//Füllen des Arrays
    	for(int i=0;i<8;i++)
    	{
    		for(int j=0;j<int_output;j++)
    		{
    			zeichen=getPixelsForChar(string_input[j]);
    			if(zeichen!=NULL)
    			{
    				strncpy_s(dump,(char*)zeichen,int_output*5);
                   //Fehler: 'strncpy_s': Funktion akzeptiert keine 3 Argumente
    
    				for(int k=0;k<5;k++)
    				{
    					*char_output[i]=dump[i][k];
    				}
    			}
    		}
    	}
    
    	//Rückgabe der Stellen
    	return int_output;
    }
    

    pixel_int_line_t ist ein char[8]
    pixel_font_t ist auch ein char[8][5]

    Ich hab es auch schon ohne konstanten probiert, mit strcpy, mit strncpy und mit pixel_font_t[40] (1D Array für die Konstanten Matrizen).

    Aber irgendetwas übersehe ich hier.

    Keine Ahnung wie es zu diesem Fehler kommt. Bin halt noch absoluter Newbie.
    Hoffe ich hab das Problem gut erklärt und jemand von euch hat eine Idee woran es liegen könnte.

    Vielen Dank schonmal im voraus.

    mfg frock 🙂



  • http://msdn.microsoft.com/en-us/library/5dae5d43(VS.80).aspx

    PS: In C++ nimmt man std::string statt char[] (std::string ist zwar auch nicht wirklich gut, aber besser als char[])



  • strncpy_s ist eine fragwürdige Microsoft-Extension und hat nix mit dem C++ Standard zu tun.
    Wieso schreibst du im Thread-Titel strncpy wenn du im Code strncpy_s verwendest?

    Und wieso machst du nicht einfach die MSDN auf und guckst nach? Ist das so schwer? Anscheinend... 🙄


Anmelden zum Antworten