因此,如果我有类似于此的动态(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;
}
因此,如果我有类似于此的动态(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;
}
你可以这样做:
#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") ;
}
}
在 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;
}