【发布时间】:2020-12-07 23:38:22
【问题描述】:
我想用malloc 在函数内部分配内存,然后返回缓冲区。然后我希望能够从函数外部将strcpy 字符串放入该缓冲区。
这是我当前的代码
#include <stdlib.h>
#include <string.h>
char allocate_mem(void) {
char *buff = malloc(124); // no cast is required; its C
return buff // return *buff ?
}
int main(int argc, char const *argv[])
{
char buff = allocate_mem();
strcpy(buff, "Hello World");
free(buff);
return 0;
}
// gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
【问题讨论】:
-
错误的原型使用
char *allocate_mem(void) -
还有
char * buff = allocate_mem(); -
阿利希巴赫曼。省时间。在您的编译器上启用更多警告,以快速获得有问题的反馈。比 SO 快得多。
-
我并不是说你没有进步之类的,但 2 天后,你需要更多阅读文档、教程和示例。如果您在这里用 C(或 C++、python 或任何成熟的语言)提出问题,它必须是一个非常好的问题。
-
@Jean-FrançoisFabre 我明白,我保证会改进我的问题。感谢您的宝贵时间。
标签: c dynamic-memory-allocation c-strings