首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

突然觉得什么都不懂了解决办法

2012-03-04 
突然觉得什么都不懂了我学了好几年C语言,突然觉得有些很基础的东西自己却很模糊。为什么要malloc呢,定义一

突然觉得什么都不懂了
我学了好几年C语言,突然觉得有些很基础的东西自己却很模糊。
为什么要malloc呢,定义一个变量不就相应地给它分配了一个空间吗

[解决办法]
int* p;
p = (int*) malloc(sizeof(int) * length);

其中int* p;时定义了一个指针变量,同时给该指针p分配了存储空间。
而malloc的时候是分配的该指针所指向的空间。

呵呵,不知道我解释得明白吗?
[解决办法]
变量占用的内存在编译连接完成后就确定了,如果没有特别指定,变量的位置和大小都是由编译器指定,分配在栈中.程序在运行的时候不能改变位置及长度,变量使用完后由编译器自动释放.

动态分配的内存在编译连接的时候位置及大小都不确定,是根据程序运行时的上下文临时分配的,程序可以根据当前运行的状态任意设置分配的长度.动态分配在堆中获取资源.动态分配的内存必须由程序显式得释放,否則会发生内存泄漏,最终将耗尽资源.

如果只想要一个用于控制循环的变量,肯定只要定义一个变量就行了.但是要载入一个文本文件到内存中的话,最好的办法应该用malloc.

热点排行