//头文件中的定义/

//纯C里面定义的布尔类型

typedef enum { False = 0, True = 1 }Bool;

//定义矩阵元素的类型为matrixType

typedef double matrixType;

//此结构体用来表示矩阵,其中row为行,column为列,height为高,array用来存放矩阵元素(用一维来模拟二维/三维)

typedef struct

{

unsigned int  row, column, height;

matrixType *array; //使用时,必须对*array进行初始化

}Matrix;

///函数/

/*

matrix为要设置大小并分配内存的矩阵,row、column、height分别为行,列,高。

函数调用成功则则返回true,否则返回false

*/

Bool SetMatrixSize(Matrix *matrix, const unsigned int row, const unsigned int column, const unsigned int height)

{

unsigned int size = row  * column * height * sizeof(matrixType);

if (size <= 0)

{

return False;

}

matrix->array = (matrixType*)malloc(size);

//如果分配内存成功

if (matrix->array)

{

matrix->row = row;

matrix->column = column;

matrix->height = height;

return True;

}

else

{

matrix->row = matrix->column = matrix->height = 0;

return False;

}

}

///主函数中调用,N=10/

Matrix A;

if(SetMatrixSize(&A, N, N, 1))

printf("矩阵A分配内存成功

");

问题是printf始终没执行,我将程序改一下

if(!SetMatrixSize(&A, N, N, 1))

printf("矩阵A分配内存成功

");

printf执行了,很是郁闷,这段代码我在vs2015验证了,没问题,在keil里就出现问题了,求各位大神求解

//头文件中的定义/

//纯C里面定义的布尔类型

typedef enum { False = 0, True = 1 }Bool;

//定义矩阵元素的类型为matrixType

typedef double matrixType;

//此结构体用来表示矩阵,其中row为行,column为列,height为高,array用来存放矩阵元素(用一维来模拟二维/三维)

typedef struct

{

unsigned int  row, column, height;

matrixType *array; //使用时,必须对*array进行初始化

}Matrix;

///函数/

/*

matrix为要设置大小并分配内存的矩阵,row、column、height分别为行,列,高。

函数调用成功则则返回true,否则返回false

*/

Bool SetMatrixSize(Matrix *matrix, const unsigned int row, const unsigned int column, const unsigned int height)

{

unsigned int size = row  * column * height * sizeof(matrixType);

if (size <= 0)

{

return False;

}

matrix->array = (matrixType*)malloc(size);

//如果分配内存成功

if (matrix->array)

{

matrix->row = row;

matrix->column = column;

matrix->height = height;

return True;

}

else

{

matrix->row = matrix->column = matrix->height = 0;

return False;

}

}

///主函数中调用,N=10/

Matrix A;

if(SetMatrixSize(&A, N, N, 1))

printf("矩阵A分配内存成功

");

问题是printf始终没执行,我将程序改一下

if(!SetMatrixSize(&A, N, N, 1))

printf("矩阵A分配内存成功

");

printf执行了,很是郁闷,这段代码我在vs2015验证了,没问题,在keil里就出现问题了,求各位大神求解

c语言动态分配内存keil,keil5中结构体分配内存问题相关推荐

  1. 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )

    文章目录 一.结构体中嵌套一级指针 1.声明 结构体类型 2.为 结构体 变量分配内存 ( 分配内存时先 为结构体分配内存 然后再为指针分配内存 ) 3.释放结构体内存 ( 释放内存时先释放 指针成员 ...

  2. Go语言实例化结构体——为结构体分配内存并初始化

    转自: http://c.biancheng.net/view/66.html 结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存.因此必须在定义结构体并实例化后才能使用结构 ...

  3. 如何初始化结构体中的指针结构体_跟我一起学习go语言(五)golang中结构体的初始化方法...

    1.自定义一个结构体 type Vertex struct { X, Y float64} 2.初始化方法-指针: rect1 := new(Vertex )rect2 := &Vertex ...

  4. c语言中结构体变量的作用,C语言 结构体 类型变量的 定义 和 引用

    前面学习了变量和数组这些简单的数据结构,它们的特点是必须使用规定的数据类型.例如数组被定义为整型后,它的所有存储单元都是由整型构成.现实生活中某一类事物的共同属性可能是由不同的数据类型组成的集合,或者 ...

  5. 【C语言入门教程】7.1 结构体类型变量的定义和引用

    前面学习了变量和数组这些简单的数据结构,它们的特点是必须使用规定的数据类型.例如数组被定义为整型后,它的所有存储单元都是由整型构成.现实生活中某一类事物的共同属性可能是由不同的数据类型组成的集合,或者 ...

  6. C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?

    C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题? 问题1:结构体指针最开始怎么分配内存?用sizeof()是不能确定大小的. 问题2:给结构体变量分配之后,是否还要 ...

  7. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  8. c语言结构体在内存中的存储,C语言结构体在内存中的存储情况探究------内存对齐...

    条件(先看一下各个基本类型都占几个字节): voidsize_(){ printf("char类型:%d", sizeof(char)); printf("int类型:% ...

  9. 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )

    文章目录 一.堆内存管理 二.内存描述符 mm_struct 结构体 三.mm_struct 结构体中的 start_brk.brk 成员 一.堆内存管理 Linux 操作系统中的 " 堆内 ...

最新文章

  1. 在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据
  2. 结合项目实例 回顾传统设计模式(九)迭代器模式
  3. 蚂蚁金服面试3+2次,最终有惊无险通过!
  4. [Google Guava] 2.4-集合扩展工具类
  5. Oracle database server 安装tips
  6. 【渝粤教育】广东开放大学 系统工程 形成性考核 (25)
  7. Django_form补充
  8. C++11 并发指南------std::thread 详解
  9. MySQL存储过程语句(if,while)的使用
  10. C语言之枚举的定义以及测试
  11. GeoQuiz初体验
  12. FFmpeg总结(十三)用ffmpeg基于nginx实现直播功能,推流拉流
  13. 计算机应用基础模块3实操题正确答案,国开20秋计算机应用基础作业3 模块4 PowerPoint 2010实操题答案...
  14. python 处理Excel 数据分析
  15. 转行学习java自学好还是去培训学校学习好?系统学习路线推荐
  16. QSqlDatabase: QMYSQL driver not loaded 解决方案
  17. linux带source地址ping,实战经验:Linux Source NAT在Ping场景下的应用
  18. 局域网lan_什么是局域网(LAN)?
  19. 关于BHO不能够正常运行的问题!
  20. 图像语义分割及神经网络

热门文章

  1. 委内瑞拉肯德基将接受Dash支付
  2. android计时器
  3. Python实现圣诞树、打包exe过程和遇到的问题
  4. 图形界面 I: 在METATRADER 4终端中使用不同类型的程序来测试界面库 (第五章)
  5. 洛谷P1551 亲戚
  6. ubuntu下添加日语输入法
  7. 如何自定义Tomcat 404错误页面
  8. 竞技体育数据可视化与可视化分析综述
  9. MybatisPlus 通用CRUD操作
  10. 【自动驾驶-感知-红绿灯】红绿灯识别知识点