所以如果我有一些动态的东西(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;
}
答案 0 :(得分: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") ;
}
}
答案 1 :(得分:0)
在C中,您可以使用malloc创建动态数组。在你的案例中的例子:
int * e = (int*)malloc(SCREENWIDTH*sizeof(int));
以这种方式动态分配内存。接下来你可以做的是使用循环初始化数组。
您访问循环的方式有误。在C中索引从0开始到n-1。
示例:在您的情况下,您只能从e [0]到e [SCREENWIDTH-1]进行访问。
所以,请通过制作i&lt;来纠正你的循环。屏幕宽度。所以,它将是
int *e = (int*)malloc(SCREENWIDTH*sizeof(int));
for (i=0; i < SCREENWIDTH; i++)
{
e[i]= i;
}