因此,我希望有一個數組,其大小最初沒有已知的(從用戶所採取的命令行),但我想把它全局訪問(外部主)。如何交換指針變量來聲明其大小最初未知的aray?
因此,這裏是我做的。
//.h file declaration
typedef struct res
{
int popultaion[NB_TYPE];
int alive;
int birthat[NB_TYPE];
}res_t;
//.c file
res_t* res_first = NULL;
int main(int argc, char* argv[])
{
int no_of_mutants = atoi(argv[1]);
int i,j = 0;
srand(time()NULL);
res_t* tem= res_first;
for(i = 0; i < no_of_mutants; i++)
{
for(j = 0; i < NB_TYPE; i++)
{
tem->popultaion[j] = rand();
}
tem++
}
//...other code
}
我得到一個分段錯誤,當我調試用gdb,好像它是在這裏它得到SIGSEGV。
tem->popultaion[j] = rand();
我有兩個問題:
- 是這種形式嘗試構建使用添加有效的指針數組?儘管地址在技術上是有效的,但我在第一次運行時遇到了段錯誤。
- 是從有效的結構體訪問的陣列構件的方法是什麼? (確定它的類型,但只是想確定)?
P.S.我知道malloc,只是可以使用malloc實現相同的功能,但我想知道在更改代碼中的其他任何地方之前是否給我這個問題,以及爲什麼?
懶得解釋了反對票? – as3rdaccount 2013-02-17 06:22:43
只是猜測關於downvote - 你說你知道malloc但不想使用它。如果它仍然有效,爲什麼我們會首先安裝malloc? – 2013-02-17 11:30:22