Is there any way to assign all elements of an array the value 0
in one go.The array accepts its size from the user. Hence
int array[x] = {0};
Won't work!
Is there any way to assign all elements of an array the value 0
in one go.The array accepts its size from the user. Hence
int array[x] = {0};
Won't work!
int *array;
int i;
printf ("Amount of numbers to be entered: ");
scanf ("%d",&i);
array = (int*) calloc (i,sizeof(int));
我最好的选择是memset
从string.h
图书馆使用。
memset(array,0,x*sizeof(int));
这在技术上不是初始化,因为没有分配,它只将给定内存中的所有字节设置为“0”,但这正是你想要在这里做的。
另外,请考虑使用malloc
创建数组,因为您现在的方式是,您的数组将在堆栈上创建(容量有限),并在创建它的函数返回时被释放(就像常规自动变量一样)。这意味着您的数组无法从其本地范围之外访问。
You will need to dynamically allocate the memory for this array:
int *array;
int x;
scanf("%d\n", &x);
array = malloc(sizeof(int) * x);
then set value for all of them
memset(array, 0, x);
or use calloc:
array = calloc(x, sizeof(int));
使用 memset
void * memset ( void * ptr, int value, size_t num );
int *array = (int *) malloc(sizeof(int) * x);
memset(array,0,sizeof(int) * x);
或使用:
void* calloc (size_t num, size_t 大小);
int *array = (int *) calloc(x, sizeof(int));