2016-06-20 4 views
1

Meine Aufgabe ist es, Daten in einem Array von char * in main() zu speichern, und jede Zeile der Daten in einer eigenen Zeichenfolge. Ich werde die gegebenen Daten fest codieren. Ist das der richtige Weg?Speichern von Daten in einem Array von char *

#include <stdio.h> 

int main(void) { 
    int i; 

    char* numbers[5] {"12, 34, 56, 78", 
         "82.16, 41.296", 
     "2, -3, 5, -7, 11, -13, 17, -19", 
     "9.00009, 90.0009, 900.009, 9000.09, 90000.9"}; 
    for(i=0;i<5;i++){ 
    //print// 
    } 


} 
+3

Ihr Array mit einer Länge von 5 hat aber nur 4 Elemente. –

+1

Wenn Sie 'char * Zahlen [5] = ...' mit 'char * Zahlen [] = ...' ersetzen, ermittelt der Compiler automatisch die Größe des Arrays. Übrigens wird es in diesem Fall weniger als "5" sein, was auch bedeutet, dass Ihr 'for()' -loop falsche Grenzen hat. – EOF

+0

Ich dachte, das würde später mit der Schleife helfen. –

Antwort

4
char* numbers[5] {"12, 34, 56, 78", 
        "82.16, 41.296", 
        "2, -3, 5, -7, 11, -13, 17, -19", 
        "9.00009, 90.0009, 900.009, 9000.09, 90000.9"}; 

vergessen Sie die =

Und es gibt nur 4 Saiten im Array, Änderung

char *numbers[] = {"12, 34, 56, 78", 
        "82.16, 41.296", 
        "2, -3, 5, -7, 11, -13, 17, -19", 
        "9.00009, 90.0009, 900.009, 9000.09, 90000.9"}; 

Und hier

for(i=0;i<5;i++){ 

nicht Verwenden magische Zahlen wie 5, verwenden Sie stattdessen den sizeof Operator, um die richtige Größe zu bekommen:

for (i = 0; i < (sizeof numbers/sizeof *numbers); i++){ 
+1

Guter Fang auf die '=' s –

+0

Jetzt weiß ich, warum ich Fehler bekam. –

+1

Ich schätze Sie tolle Leute. –

Verwandte Themen