我需要一些方法来创建for
的N个变量(数字大于1)?
例如,类似的东西:
int N=1000;
for(int i=0; i < N; i++){
char* var_i = malloc(sizeof(1));
}
注意:我知道上面的代码不起作用,我写的只是为了解释我的意图。
答案 0 :(得分:2)
您可以使用数组。这是两个例子:
#include <stdio.h>
#define N 10000
int main(void)
{
char array[N];
for (size_t i = 0; i < N; i++) {
/* Do what you want. */
}
return 0;
}
或者如果你想要在堆中:
#include <stdio.h>
#include <stdlib.h>
#define N 10000
int main(void)
{
char *array = malloc(sizeof *array * N);
if (array == NULL) {
perror("Malloc");
exit(EXIT_FAILURE);
}
for (size_t i = 0; i < N; i++) {
/* Do what you want. */
}
free(array);
return 0;
}
答案 1 :(得分:-1)
如果你想声明N个计数变量......
#include<stdio.h>
#define CHUNK 64
const int N=10; //count of the variables
int main(void){
char* vars[N], i; //declare the array of variables
for(i=0;i<N;i++){ //alloc variables
vars[i]=(char*)malloc(CHUNK*sizeof(char));
if(!vars[i]){
printf("out of memory!");
return 1;
}
}
//do stuff
//free memory
for(i=0;i<N;i++)
free(vars[i]);
return 0;
}