前言:
在使用指针的时候,需要注意的是内存空间的申请和释放,这里主要针对malloc函数来实现。
案例:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
struct TENSOR
{
int w=4;
int h=2;
int c=3;
float* dataPtr;
};
int main() {
TENSOR layer;
/*申请一段内存空间*/
float* tmp = (float*)malloc(layer.w*layer.h*layer.c*sizeof(float));
for(int i = 0; i<24; i++){
tmp[i] = i + 0.1;
printf("tmp[%d] = %f\n",i,tmp[i]);
}
/*地址传递,复用内存空间*/
layer.dataPtr = tmp;
/*读取结构体成员指针所指向内存空间中的值*/
for(int i = 0; i < layer.w*layer.h*layer.c; i++){
printf("layer.dataPtr[%d] %f\n",i,layer.dataPtr[i]);
}
/*释放内存空间*/
free(tmp);
return 0;
}