变量即内存、指针使用的架构原理:
1、用结构struct记录 网络架构,如 float*** ws 为权重矩阵的指针(指针地址);
2、用 = (float*)malloc (Num * sizeof(float)) 给 具体变量分配内存;
3、用 = (float**)malloc( Num* sizeof(float*) ) 给 指向 具体变量(一维数组)的指针…… 给分配 存放指针的变量……
……见代码
// test22动态数组22多维数组23三维随机数230101.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include <iostream>
using namespace std;
typedef struct {
float*** ws;
int num1;
float** layer_outputs;
}NeuralN;
//初始化 神经网络的 weights权重矩阵等
NeuralN init(int* t01, int num02) {
NeuralN nn;
nn.num1 = num02;
nn.ws = (float***)malloc((num02 - 1) * sizeof(float**) );
srand(time(NULL));
cout << " [num02:" << num02 << endl;
for (int i = 0; i <(num02 - 1); ++i) {
nn.ws[i] = (float**)malloc( t01[i] * sizeof(float*) ); //为指针分配内存
for (int j = 0; j < t