0

したがって、これに似た動的な(forループを介して反復されるIE)ものがある場合...

for (i=0; i <= SCREENWIDTH; i++)
{
}

そして、サイズ SCREENWIDTH の配列を作成し、それにエントリを追加したいと考えました。これを行う方法はありますか?

PSUEDO 賢明なのは...

int[SCREENWIDTH] e = {1,2,....SCREENWIDTH}
for (i=0; i <= SCREENWIDTH; i++)
{
  e[i]= i;
}
4

2 に答える 2

2

これは次のように行うことができます。

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

int main()
{
   int SCREENWIDTH = 80 ;
   int *arr = (int *)malloc( sizeof(int) * SCREENWIDTH ) ;

   if( NULL != arr )
   {
      for( int i = 0; i < SCREENWIDTH; ++i )
      {
         arr[i] = i ;
      }

      for( int i = 0; i < SCREENWIDTH; ++i )
      {
         printf( "%d, ", arr[i]) ;
      }
      printf("\n") ;
   }
}
于 2013-04-13T01:50:55.243 に答える
0

C では、malloc を使用して動的配列を作成できます。あなたの場合の例:

int * e = (int*)malloc(SCREENWIDTH*sizeof(int));

この方法でメモリを動的に割り当てたら。次に考えられるのは、ループを使用した配列の初期化です。

ループへのアクセス方法に誤りがあります。C では、インデックスは 0 から n-1 まで始まります。

例: あなたの場合、e[0] から e[SCREENWIDTH-1] までしかアクセスできません。

したがって、i < SCREENWIDTH にしてループを修正してください。だから、それは

int *e =  (int*)malloc(SCREENWIDTH*sizeof(int));
for (i=0; i < SCREENWIDTH; i++)
{
  e[i]= i;
}
于 2013-04-13T01:55:19.583 に答える