C语言开辟空间问题

我想由用户指定所开辟的空间大小。不知道可不可以?希望知道的朋友不吝赐教,非常感谢!

第1个回答  2006-11-23
当然可以,用malloc(size)函数就可以来实现.
size可以等于任何数.只要不超出机器所允许的范围.
第2个回答  2006-11-23
如:
int *a;
a = (int *) malloc(5*sizeof(int));
上面的意思是指针a指向了拥有五个整形变量的数组的首地址,功能就相当于静态数组int a[5]差不多,只是此时是动态申请的!本回答被提问者采纳
第3个回答  2006-11-23
for example :malloc(sizeof(int));
第4个回答  2006-11-23
malloc(size)
第5个回答  2006-11-23
malloc(size)

c语言中如果在结构体中定义了如图所示的内容,那么开辟的是一个什么...
结构体开辟空间类似于数组,但是结构体开辟空间遵循一下规则 计算结构体类型空间大小的原则:结构体的有效对其值 1) 数据对齐原则---内存按结构体成员的先后顺序排列,当排到该成员时,其前面已开辟的空间字节数必须是该成员类型所占字节数的整数倍,如果不够则补齐,依次向后类推。2) 整体空间是占用...

函数中用malloc开辟空间的问题(C语言)
按你说的,没有把指针返回也没有释放,那么函数返回时开辟的空间还在,但你已无法引用。用malloc是在堆中分配的空间,用完需用自已显示释放.采用如int a=0的方式会在栈中分配空间,函数返回时栈指针回移,此空间仍能被其它函数使用(相当于自动释放)...

C语言,什么时候需要开辟空间
其实写一个函数,开头的声明变量或数组就是在开辟空间,所以只要写代码,开辟空间的事肯定就少不了。但你这里说的我想应该是指“动态开辟空间”。动态开辟空间一般在以下情况下进行:编程时不知道需要多大的空间,要在程序运行时由用户输入大小或计算出所需大小;一些数据量太大,栈区放不下,需要创建在...

用C语言分配开辟内存问题
下一个:new和malloc()分配的空间都是在堆区,堆你就可以随意申请了,系统会在系统空闲的链表中找出你要申请空间的大小,标志为已经使用了,然后就会给你用 在申请空间后,注意检测一下申请空间返会值,为NULL就是系统给你分配空间失败了,用完了之后,你需要delete或free()掉你申请的,然后系统就...

c语言,假设我现在准备用malloc函数为一个字符串开辟一个空间?
这样弄都行:char *str=(char*)malloc(20);或 char *str=(char*)malloc(sizeof(char)*20);因为sizeof(char)就等于1。

C语言,用malloc动态开辟过的空间,还能再重新改变它的大小吗?
可以 但是,这样存在两个问题 1:原来的分配的空间没有释放,存在内存泄露的危险 2:如果原来分配空间后,使用了相关内存,像赋值等,重新分配后,原来的值都不会存在了。另外p1 = (int *) malloc ( sizeof(int) * (num));不是 sizeof(int *)....

【C】动态内存管理 malloc calloc relloc free 函数详解
C语言提供了一个动态内存开辟的函数malloc 这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。malloc返回值的检查 运行结果:最好还是将开辟的空间释放掉,这时我们就要搭配下面这个函数进行空间的释放:空间释放函数free C语言提供了另外一个函数free,专门是用来做动态内存的释放和回收的,...

c语言问题,为什么链表操作过程中对于结构体指针,都要用malloc来开辟内存...
定义的结构体指针只是说明这个指针是指向这个结构的,但并未给它分配内存空间,这就类似于声明,只是告诉系统我这个指针是干什么用的。链表是由一个个的结点链接起来的,而每个结点都是需要内存空间来存储数据的,所以你每新建一个结点,都需要开辟一个空间来存储数据。希望对你有用~...

C语言 分函数 开辟空间
calloc申请的空间跳出函数未被释放,需要人为释放,否则要待程序结束由系统回收

关于C语言中free函数的问题
要free的话首先那块空间得是malloc, calloc, realloc...开辟出来的内存空间, free多少取决于当时alloc出多少.char* a = (char*)malloc(x*y*sizeof(char));\/\/开辟了x*y个char的空间,(这里是二维的,如果多维就是要多少,开多少);\/\/相当于a[x][y];\/\/但是malloc出的空间是堆区的,而数组是在...

相似回答
大家正在搜