char *

2016-06-20 2 views
1

の配列にデータを格納する私の仕事は、main()のchar *の配列にデータを格納し、それ自身の文字列にデータの各行を格納することです。私は与えられたデータをハードコードすると仮定しています。これは正しい方法ですか?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

あなたアレイ5の長さを有するだけで4つの要素を有する:は、代わりに、正しいサイズを得るためにsizeof演算子を使用します。 –

+1

'char * numbers [5] = ...'を 'char * numbers [] = ... 'に置き換えると、コンパイラは配列のサイズを自動的に把握します。ちなみに、この場合は '5'よりも小さくなります。これは' for() '-loopに不正な境界があることを意味します。 – EOF

+0

私はそれが後でループに役立つだろうと思った。 –

答えて

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"}; 

あなたは=

を忘れて、あなたの配列の唯一の4文字列が存在し、

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"}; 

そしてここ

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

使用しないでくださいへの変更のような魔法の数字

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

'=' 'sの –

+0

にうまくキャッチできました。なぜ私はエラーが発生したのか分かりました。 –

+1

素晴らしい人に感謝します。 –