此页突出显示哪些编程错误?

Car*_*ers 4 c

http://dspace.dial.pipex.com/town/green/gfd34/art/bloopers.html

第一个似乎很简单;

return strcpy(malloc(strlen(s)), s);
Run Code Online (Sandbox Code Playgroud)

malloc可能会返回null,并strcpy可能尝试将数据复制到内存地址0.或者s可能是指向字符串(而不是数组)malloc的指针,并且只会为指针分配足够的空间,并尝试将字符串复制到其中.(我认为).

那第二个怎么样?

当他写下ch = toupper(ch)时,他没有给无符号字符添加ch,真是太遗憾了;

你为什么要投chunsigned char你写的ch = toUpper(ch);

new*_*cct 6

第一个似乎很简单; malloc可以返回null,并且strcpy可以尝试将数据复制到内存地址0.或者s可以是指向字符串(而不是数组)的指针,malloc只会为指针分配足够的空间,并且会尝试复制串入它.(我认为).

很简单吧?你错过了最明显的错误:你没有分配足够的空间.strcpy()复制字符串加上终止空字节,因此目标缓冲区的大小必须至少比字符串的长度大1.