This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/MSP430F6636:calloc问题

Guru**** 2589280 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/615762/compiler-msp430f6636-calloc-issue

部件号:MSP430F6636

工具/软件:TI C/C++编译器

您好,

我在使用calloc函数时遇到问题:

PTR =(int *) calloc (200,sizeof (int));
用于(i=0;i<200;i++){
PTR[I]= I+1;
} 

当我编译代码并调试第一行时,我有PTR地址0x0万 {-1.2238万}。 然后,当然代码崩溃并跳至:__TI_ISR_TRAP
问题是如果我将大小更改为50可以正常工作。

我有可用的65 % of 16 KB RAM,我想分配关于2 KB 阵列的信息。


有什么想法吗?


此致
克里斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当我编译代码并调试第一行时,我有PTR地址0x0万 {-1.2238万}。

    calloc()返回空指针(零),没有足够的空闲堆空间用于分配。

    堆大小在“生成”->“MSP430链接器”->“基本选项”->“C/C++动态内存分配的堆大小”(--heap_size,-heap)下的项目属性中设置:

    要分配2 KB 数组,您需要将堆大小增加到> 2 KB (有一些开销来管理分配)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这太棒了!! 谢谢你:)这里太简单了:P