求教: C自建struct变量无法初始化

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:42:29
如题,程序如下
typedef struct Keyfiles{
int num_key;
char** key_array;
} Keyfiles_t;
以上定义出现在头文件里

void keyfiles_init(Keyfiles_t *t){
int i=0;
t->key_array = new char*[MAX_KEYFILE];//这里就出错了,不知道为什么不能初始化赋值,出现的错误是Access violation writing location
t->num_key=0;
for(i;i<MAX_KEYFILE;i++) t->key_array[i]=NULL;
return;
}
int main(){
Keyfiles_t *e=NULL;
keyfiles_init(e);
....
编译通过,运行出错,环境:VC2008

int main(){
Keyfiles_t e= {0}L;
keyfiles_init(&e);

动态分配2维数组啊。
我怎么觉得是对的呢? 莫非是C里面没有new操作符,只能用
malloc?

e尚未分配内存啊,Keyfiles_t *e=NULL; ==》Keyfiles_t *e=new Keyfiles_t;