我刚开始学习C语言中的内存管理,但是有些地方不明白。我想要分配12个字节大小的缓冲区,也就是 Hello World!
字符串的确切大小(不包含结束符号)。
然后我想用 strcat
函数将一个字符串附加到当前字符串末尾,但是由于会出现 core dumped
错误,所以我不能这样做。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char mystr[12] = "Hello World!";
# allocate memory to mystr?
char *ptr = (char*) malloc(13 * sizeof(char));
strcat(mystr, "Hello");
return 0;
}
因此,如果
malloc
除了目标大小之外没有其他参数,我不知道如何为mystr
变量分配内存。
mystr
后,您无法调整其大小。 - Inianstrcat
另一个字符串了。 - ArlichBachmanmystr
与动态内存管理没有任何关系。您不会在mystr
上使用malloc
等函数。 - Gerhardh