【发布时间】:2018-03-12 01:34:48
【问题描述】:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char* name;
name=(char* )malloc(sizeof(char));
printf("Enter a name: ");
scanf("%s",name);
printf("%s",name);
return 0;
}
当我只是为单个字符分配内存时,上面的代码完美地存储了整个字符串。这怎么可能?
【问题讨论】:
-
"只是为单个字符分配内存。这怎么可能?"
scanf()只是扫描超出代码分配的内存末尾的其余部分。这样做会调用臭名昭著的未定义行为。
标签: c string character heap-memory allocation