-2
所以我試圖在人工神經網絡上進行實驗,或者至少是抓表面。但這是我的問題,我無法找到增加包含其他「神經元」指針的數組大小的方法。將數組的指針更改爲更大的數組
這是我的代碼,用於擴展我的人造神經元的大小。
void extendNeuron(NeuronPtr *base, NeuronPtr * dest) {
(*(*base)->axon[sizeof((*base)->axon)/sizeof(*(*base)->axon) - 1]) = *dest;
struct Neuron *** newAxon[sizeof((*base)->axon)/sizeof(*(*base)->axon) + 1];
memcpy(newAxon, (*base)->axon, sizeof((*base)->axon));
**(*base)->axon = ***newAxon;
}
下面是我的神經元的結構
struct Neuron{
char label[100];
struct Neuron **axon[1];
};
現在我的想法是創建一個指針的另一個數組(結構神經元**軸突)比當前陣列更大(增加1它),然後將軸突的指針更改爲該數組。但我不知道該怎麼做。
到目前爲止,這裏是我的代碼:
struct Neuron ** newAxon[sizeof((*base)->axon)/sizeof(*(*base)->axon) + 1]; //newAxon is supposed to be bigger than the axon of base
memcpy(newAxon, (*base)->axon, sizeof((*base)->axon)); //then I'm trying to copy the axon of base to the newAxon
**(*base)->axon = ***newAxon; //then change the pointer of axon to newAxon
任何理由你不能使用可以自動增長的['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)? – NathanOliver
你打算在你的代碼中使用'[1]'表示結構Neuron ** axon [1];'我知道它意味着什麼,我真的懷疑這是你的意圖。 – JSF
你對sizeof的使用也並不意味着你想要的意思(我知道你想要什麼,以及它的意思,它們是不一樣的)。 – JSF