0

因此,如果我有类似于此的动态(IE 通过 for 循环迭代)...

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 < 屏幕宽度来更正您的循环。所以,这将是

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