我如何正确使用malloc?

时间:2011-11-24 10:52:08

标签: c

假设我有一个char变量,它将保存1000个字节。

char var[1000];

我如何使用malloc为那里的内容分配那么多内存?

我已经尝试过阅读malloc,但即便是K& R似乎也没有太多信息。

5 个答案:

答案 0 :(得分:5)

应该有数百万页解释malloc的使用,我怀疑你做了很多搜索。但这就是你如何称呼它:

char *var = malloc(sizeof(char) * 1000);

对于其他类型,只需更改它:

int *int_var = malloc(sizeof(int) * 1000);

编辑请记住,您必须在使用后释放已分配的内存!或者你会有内存泄漏。

free(var);
free(int_var);

答案 1 :(得分:2)

您不希望将malloc用于此变量,因为它已经分配,​​但您可以通过使用

获得类似的结果
char *var = malloc(sizeof(char[1000]));
// do stuff
free(var);

答案 2 :(得分:0)

http://www.manpagez.com/man/3/malloc/

char *pVar = malloc(1000);
.... use pVar ....
free(pVar);
// DONT use pVar anymore

答案 3 :(得分:0)

如果您已将变量声明为char var[1000];,那么您已经静态分配了那么多内存。您无需为此致电malloc

如果您想使用动态分配,并且您的变量声明如下:char *var;您可以按如下方式分配内存:

var = malloc(1000);

完成后,也不要忘记释放已分配的内存:

free(var);

答案 4 :(得分:0)

如果你有char var[1000]你不需要malloc这个定义为1000*sizeof(char)分配var,那么你可以做一些像var [999] ='x';