malloc函数的问题
发布网友
发布时间:2024-10-16 05:01
我来回答
共3个回答
热心网友
时间:2024-10-30 08:48
改成:content=(unsigned char *)malloc(20*sizeof(unsigned char));
如果改成数组unsigned char content[80]的话,空间将由栈中分配,而且退出当前函数之后就会被释放,不能再使用了。
这样不能使用的话,请检查你为程序预留的栈空间大小(在编译选项里面)。如果栈溢出的话是肯定会死机的。
另外如果你的这个函数不会重入的话(即没有退出就又在另一线程中调节或者被递归调用),也可以使用static unsigned char content[80],这样就不会占栈空间了。
热心网友
时间:2024-10-30 08:47
arm7跑linux还是不太现实的,死机也是不奇怪的
热心网友
时间:2024-10-30 08:52
你要分配20个指针吗??? 应该没问题的.
=========================================
可以改成数组, 不过这样大小就必须确定, 无法动态改变了.
对于大数组, 我建议用malloc, 不然太浪费空间了.
当然, 对于嵌入式程序不知道有没有这个必要.
=========================================
先做个测试, 定义一个小数组, 比如大小为10, 5, 3
看看还死机吗?