如何在for中创建N个变量?

时间:2017-06-05 17:27:41

标签: c variables for-loop

我需要一些方法来创建for的N个变量(数字大于1)? 例如,类似的东西:

 int N=1000;   
 for(int i=0; i < N; i++){  
    char* var_i = malloc(sizeof(1));  
    } 

注意:我知道上面的代码不起作用,我写的只是为了解释我的意图。

2 个答案:

答案 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;
}