2014-05-20 81 views
-1

我想在全局矩阵中做条件初始化;是否可能如下(伪代码)?请建议一些替代方案。全局变量的条件初始化C

char a[][] = {{1,2,3,4}, 
#ifdef init 
       {1,3,4,5}, // I want to make this conditional 
#endif 
       {1,4,5,6} 
      } 

main() 
{ 
    #define init 1; 
} 
+3

'的#define INIT 1;'建议你真的不明白的预处理器和编译器,它是手头关于这个问题的一个基本概念之间的区别。 –

+1

我知道上面是错误的,我只是想解释我想做什么..这很难解释,否则,请不要挑剔 –

+0

这不是要挑剔,我只是有一种感觉,你正在尝试以错误的方式解决问题。 –

回答

1

使a成为全局指针,然后使用malloc有条件地初始化。

char **a; 

int main() 
{ 
    if (condition){ 
     a = malloc(some_size); 
     //initialize the memory here 
    } 
    else { 
     a = malloc(other_size); 
     //or initialize differently here 
    } 

}