c程序中的strcat不起作用

 呼噜垃圾桶 发布于 2022-12-25 17:31

你正在学习一本糟糕的书.主要功能应声明为

int main (void);

将其声明为void会在应用程序完成时调用未定义的行为.嗯,它还没有完成,但最终它会.

得到一本关于C语言的书.你会发现的

char *srt1="hello";

编译好像你写的那样

static const char secret_array [6] = { 'h', 'e', 'l', 'l', 'o', 0 };
char* srt1 = (char*) &secret_array [0];

char srt1[]="hello";

编译好像你写的那样

char srt1 [6] = { 'h', 'e', 'l', 'l', 'o', 0 };

两个strcat调用都是严重的错误,因为strcat调用的目标没有足够的内存来包含结果.第一次调用也是一个bug,因为你试图修改常量内存.在第一种情况下,这个bug会导致崩溃,这对你来说是一件好事并且很幸运.在第二种情况下,不会立即检测到错误.哪个运气不好.你可以打赌,如果你在一个运送给客户的程序中使用这样的代码,如果你运气不好就会崩溃,导致不正确的结果会给你的客户带来很多钱,否则你会被起诉.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有