0
我有一个头文件,其中包含char** globalScreen
,我已经分配了内存中的函数,该函数一旦程序在main.c中启动就会被调用。Segfault的问题可能涉及范围
我按照以下方式分配了内存;
char (*globalScreen)[SSIZEY] = malloc(SSIZEX * SSIZEY * sizeof(char*));
int i,j;
for(i = 0;i < SSIZEX;i++)
{
for(j = 0; j < SSIZEY;j++)
{
globalScreen[i][j] = (char)0x41;
}
}
还初始化了数组。
然后我可以成功打印整个数组,但只能从我分配并初始化它的函数内部。当我尝试从main
访问数组时 - 在调用初始化数组的函数之后,程序段错误。
我试过用lldb调试,但发现它似乎无法找到我试图设置它们的任何位置。 头文件的相关部分如下;
#ifndef _VECTORDATA_H_
#define _VECTORDATA_H_
#include "vectorAPI.h"
char** globalScreen;
#endif
你可以发布头文件中的相关部分吗? –
你还可以发布初始化数组的整个函数吗? –
重命名char ** globalScreen; char ** globalScreenXXX;并尝试编译..我认为他们是不同的变量之一,其中一个是本地的,另一个是全局的。 – houssam