2016-11-16 17 views
0

私は2つの文字配列を持っています。私は1つの2次元配列を作りたいと思います。 しかし、Character値は、2D配列で初期化しようとすると問題を引き起こしているようです。Cでこの2D配列を初期化するにはどうすればよいですか?

このタイプの配列を初期化する適切な方法は何ですか? 関数 "trumplar()"は正常に動作します。

2D文字配列x [22] [22]関数 "trumpsterFire()"は正しく初期化できません。

#include <unistd.h> 
#include <stdio.h> 
#include <stdlib.h> 

void trumplar(){ 
int len = 22; 
     char a[25]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x3d,0x76,0x1e,0x38,0x38,0x6d,0x00}; 
     char L[25]="abcdefghjlpsS"; 
    int i; 
    for (i = 0; i <=len; i++){ 
     char hit=L[i]; 
     char urd=a[i]; 
     printf("The %d, Value of a is:%c\t Hex val: %c\n",i,hit,urd); 
     } 
} 

void trumptsterFire(){ 
    //int xlen = 22; 
char x[22][22]={ 
    {0x3f,0},{0x6,1},{0x5b,2}, 
    {0x4f,3},{0x66,4},{0x6d,5}, 
    {0x7d,6},{0x7,7},{0x7f,8}, 
    {0x6f,9},{0x77,a},{0x7c,b}, 
    {0x39,c},{0x5e,d},{0x79,e}, 
    {0x71,f},{0x3d,g},{0x76,h} 
    ,{0x1e,j},{0x38,l},{0x38,p}, 
    {0x6d,s},{0x00,S} 
    }; 
    }  

int main(){ 
    trumplar(); 
trumptsterFire(); 
    return 0; 
    } 
+0

最後の '\ 0'要素を配列に追加していますか? –

+1

あなたの配列の次元はあまり意味がありません。 'char x [22] [22]'(22個の22個の配列からなる配列)を持っていますが、 'char x [23] [2]'(2文字の23個の配列からなる配列) ...(一重引用符がない場合は無視する) – Dmitri

答えて

2

単一のqoute( ')を使用して文字を割り当てます。

#include <unistd.h> 
    #include <stdio.h> 
#include <stdlib.h> 

     void trumplar(){ 
     int len = 22; 
       char a[25]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x3d,0x76,0x1e,0x38,0x38,0x6d,0x00}; 
       char L[25]="abcdefghjlpsS"; 
      int i; 
      for (i = 0; i <=len; i++){ 
       char hit=L[i]; 
       char urd=a[i]; 
       printf("The %d, Value of a is:%c\t Hex val: %c\n",i,hit,urd); 
       } 
     } 

     void trumptsterFire(){ 
      //int xlen = 22; 
     char x[22][22]={ 
      {0x3f,'0'},{0x6,'1'},{0x5b,'2'}, 
      {0x4f,'3'},{0x66,'4'},{0x6d,'5'}, 
      {0x7d,'6'},{0x7,'7'},{0x7f,'8'}, 
      {0x6f,'9'},{0x77,'a'},{0x7c,'b'}, 
      {0x39,'c'},{0x5e,'d'},{0x79,'e'}, 
      {0x71,'f'},{0x3d,'g'},{0x76,'h'} 
      ,{0x1e,'j'},{0x38,'l'},{0x38,'p'}, 
      {0x6d,'s'},{0x00,'S'} 
      }; 
      }  

     int main(){ 
      trumplar(); 
     trumptsterFire(); 
      return 0 

    ; 
     } 
+0

\ 0文字は必須ではありません。 – j0h

関連する問題