#include <stdio.h>
#include <stdlib.h>
int main() {
char* string;
string = (char*)malloc(5*sizeof(char));
scanf("%s", string);
printf("%s", string);
}
本以为这样创建的字符串等于string[5],没想到能输入很长的字符串并且没有发生错误,请问各位高手,这是为什么?
c语言不会对下标检查
但是这样可能会破坏别的变量
换个编译器看看吧,我用的VC输入超过四个数就会报错