若有语句:char *s;则语句strcpy(s,"hello");是正确的 为什么不对?

来源:百度知道 编辑:UC知道 时间:2024/06/01 19:25:40
是因为s不对?

如果s没有分配内存空间
strcpy(s, "hello")就会导致内存访问的异常
可以用
s = (char*)malloc(10);//分配10字节的内存给s

s = new char[10];//紧限于C++语言

不正确,因为你没有为s分配存储空间。
在strcpy(s,"hello");之前加上
s = (char *) malloc(N*sizeof(char));,其中N至少应该为6,因为"hello"是一个字符串,还应为最后标志字符串结尾的空字符'\0'预备一个空间。