不懂,求教!我写的对不对,为什么超出了分配的空间,还能输入字符.
原题:编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间.new(n)表示分配n个字节的内存空间.#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(char)
char *new(int n)
{
char *str;
str=(char *)malloc(LEN*n);
return str;
}
int main()
{
char *string;
string=new(5);
scanf("%s",string); //输入超过5个的字符也行,晕了...
puts(string);
return 0;
}