在这个问题,有人建议意见,我应该不会投的结果malloc,即
int *sieve = malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)
而不是:
int *sieve = (int *) malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)
为什么会这样呢?
我有一个关于 C 函数如何返回静态变量的问题:
在data.h文件中:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int age;
int number;
} person;
person * getPersonInfo();
Run Code Online (Sandbox Code Playgroud)
在data.c
#include "data.h"
static struct person* person_p = NULL;
person * getPersonInfo()
{
person_p = (struct person*)malloc(10 * sizeof(struct person));
return person_p;
}
Run Code Online (Sandbox Code Playgroud)
在main.c
#include "data.h"
int main()
{
person* pointer = getPersonInfo();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
函数getPersonInfo()返回一个指针,该指针是 中的静态指针data.c,这是允许且合法的吗?在 中main.c,该函数可以getPersonInfo()这样使用吗:person* pointer = getPersonInfo();