假设我有一个char变量,它将保存1000个字节。
char var[1000];
我如何使用malloc为那里的内容分配那么多内存?
我已经尝试过阅读malloc,但即便是K& R似乎也没有太多信息。
答案 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';