c - 寻找我参加的旧测试的答案,试图了解我应该做什么。(也许是 Malloc 函数?)

标签 c function testing malloc

Old Test

我正在回顾我参加的测试,并试图找出这些问题的答案。我想知道是否有人可以帮助我?正如你可能看到的,我当时并不真正明白如何回答他们,但我想学习。我相信答案与 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/

相关文章:

r - 防止 R 中的函数覆盖

javascript - 为什么要写一个从不返回值的函数

angularjs - 找不到名称 'provide'

c - 使用cantools生成C文件

c++ - 为什么我的 for 循环在我的 void 函数中不起作用

node.js - 我在哪里写这个 mocha-zombie node.js 测试失败了?

python - 模拟 SQLAlchemy 的默认属性

c++ - 如何将 "struct first_name"重命名为 "struct second_name"

c - 如何用一行代码设置和清除不同的位(C)

c++ - 为什么我可以在 C 中调用函数而不声明它,但不能在 C++ 中调用?