【发布时间】:2023-03-17 11:04:02
【问题描述】:
我有这个简单的代码,但不知道如何为 scanf 分配内存
char* string= (char*) malloc (sizeof(char));
printf("insert string: \n");
scanf("%s", string);
free(string);
不管我的字符串有多少个字符,这是一个错误。我想对 char* 使用 malloc,以任何方式为 scanf 设置内存。
【问题讨论】:
-
您只为字符串分配 1 个字节。对于空字符串的字符串终止符
\0来说已经足够了,但仅此而已。 -
“这是一个错误”是什么意思? 什么错误?你如何分配多个字符?顺便说一句,
sizeof(char)被指定为始终导致1。
标签: c memory memory-management valgrind scanf