我正在回顾我参加的测试,并试图找出这些问题的答案。我想知道是否有人可以帮助我?正如你可能看到的,我当时并不真正明白如何回答他们,但我想学习。我相信答案与 Malloc 有关,但不确定到底如何。
谢谢!
编辑:你就是这样做的吗?
#include <stdio.h>
#include <stdlib.h>
float* func();
int main(void)
{
float *x;
x = func();
printf("%f\n", *x);
return 0;
}
float* func(void){
float * z;
z = malloc(sizeof(float));
* z = 11.2;
return z;
}
最佳答案
malloc与分配内存有关。
当我们谈论c中的数组和指针时,我们可以将其分为静态数组和动态数组。对于静态数组,我们使用数组,例如
char arr[10];
表示声明一个名为arr的char类型数组,长度为10。 对于动态数组,我们使用指针,例如 char *arr。这意味着arr的char类型指针。指针非常灵活;因此,您必须命令才能正确使用它。
假设
char *arr = (char *) malloc (sizeof (char) * 10);
这意味着您有一个指针,并将分配长度为 10 的 char 类型大小的内存,您也可以使用不同长度的 realloc 重新分配内存。使用结束后,您必须
free(arr);
补充一点,这是C语言的好处,我相信它比其他语言更难使用,但更灵活。另一方面,您必须非常小心地使用它。指针使用不当可能会导致整个软件故障。
关于c - 寻找我参加的旧测试的答案,试图了解我应该做什么。(也许是 Malloc 函数?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36143795/