c语言打印乱码_C语言打印字符乱码和char *字符循环赋值时“段错误 (核心已转储)”...-程序员宅基地

技术标签: c语言打印乱码  

C语言打印字符乱码和char *字符循环赋值时“段错误 (核心已转储)”

C语言打印字符乱码和char *字符循环赋值时“段错误 (核心已转储)”问题解决。

1.打印字符乱码

#include

#include

char *SYM="";

void change(){

char tmp[10]="SYM";

printf("%d\n",tmp);

SYM=tmp;

}

int main(int argc, char *argv[])

{

change();

printf("%d\n",SYM);

printf("%s\n",SYM);

return 0;

}

解决方案:

tmp[10]是在子函数中分配的内存空间,回到主函数后你还要引用那块被销毁了的内存,打印出来的肯定是乱码。

主要是分函数分配的空间在栈里面(tmp和tmp指向的字符串内容),分函数结束后栈销毁,空间全部释放。

如果改成char *tmp则不会乱码,函数里面的变量(tmp)还是在栈里面,但是tmp指向的字符串内容则分配在堆中,

分函数结束后栈销毁,空间全部释放。但tmp指向的字符串内容还存在,SYM中存了地址,可以访问。

不过这部分堆空间已经是未分配的空间(垃圾空间),随时可以被再次分配。所以虽然可以访问但是不安全。

如果必须使用,则把char tmp[10]在函数外面定义。

2.char*单个字符赋值

#include

#include

char *p="";

int main()

{

int i;

//p=(char*)malloc(8);

for(i=0;i<7;i++)

{

p[i]='a';

}

p[i]='\0';

printf("%s\n",p);

return 0;

}

解决方案:

本程序编译正常,运行提示“段错误 (核心已转储)”,char *未分配内存空间,所以不能操作数组,也就是不能单个字符来赋值。必须要用内存来分配空间。即注释部分去掉注释,给指针分配内存,则就可以操作了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39623411/article/details/111898941

智能推荐

python递归函数讲解_Python递归函数实例讲解-程序员宅基地

文章浏览阅读473次。Python递归函数实例讲解Python递归函数实例1、打开Python开发工具IDLE,新建‘递归.py'文件,并写代码如下:def digui(n):if n == 0 :print ('')returnprint ('*'*n)digui(n-1)if __name__ == '__main__':digui(5)这里递归打印*号,先打印后递归2、F5运行程序,打印内容如下;********..._diguihanshu1

python aiompq集群_Centos 7.5基于MySQL 5.7的 InnoDB Cluster 多节点高可用集群环境部署记录...-程序员宅基地

文章浏览阅读138次。一. MySQL InnoDB Cluster 介绍MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluster, 腾讯的PhxSQL, MySQL Fabric., aliSQL。MySQL官方在2017年4月推出了一套完整的、高可用的Mysql解决方..._loose-group_replication_allow_local_disjoint_gtids_join

python定义一个字符串数组_python字符串,数组操作-程序员宅基地

文章浏览阅读1.5k次。今天倒是学到了很多知识,了解了python的基本数组,以及可变类型和不可变类型,还有元组,列表,字典等等的用法然后作业如下其中在做往list列表加东西时候遇到了小毛病,用户从控制台输入的是一个字符串,并不是一个列表,将字符串int一下,在加入新的列表里,才可以进行接下来的操作。a=input('请输入你的邮箱地址:')b=a.split('@')# print(b[1])print('pop3.%..._python定义一个字符串数组

Linux输密码不显示_linux输入密码不显示出来-程序员宅基地

文章浏览阅读2k次。Linux是一个安全性比较强的的操作系统,所以输入密码的时候是不会显示的,但是它会记忆用户输入的密码,所以一般还是不要把密码设置的太复杂了。不然_linux输入密码不显示出来

【论文阅读笔记】Continual Diffision: Continual Customization of Text-to-Image Diffusion with C-LoRA_continual diffusion: continual customization of te-程序员宅基地

文章浏览阅读289次,点赞4次,收藏2次。本文介绍了C-LoRA,在文生图持续学习问题中通过将多个LoRA正则化以减少灾难性损失的方法。_continual diffusion: continual customization of text-to-image diffusion with

2024上半年软考别轻易尝试!先了未发布_计算机软考2024-程序员宅基地

文章浏览阅读431次,点赞7次,收藏5次。软考共设有27个不同的资格类别,按照方向划分为五大方向,包括计算机软件、计算机网络、计算机应用技术、信息系统和信息服务,同时还有三个不同的等级,即初级、中级和高级。只要遵守中华人民共和国的宪法和法律,并具备一定的计算机技术应用能力,任何人都可以根据自己的情况报名参加相应专业类别和级别的考试。1、2023年下半年起,软考已经从传统的纸笔考试改革为机考形式,这意味着备考2024年的考生需要调整答题方式。5、软考备考需要有老师的指导和学友的陪伴,才能保持良好的心态并坚持下去,否则很容易半途而废。_计算机软考2024

随便推点

cf两边黑屏怎么解决win10_临时解决win10_1903远程桌面黑屏bug-程序员宅基地

文章浏览阅读196次。作为一个macos用户,我保留了一个windows平台的旧电脑来运行一些windows only的应用程序。两台电脑之间通过windows远程桌面(RDP)进行连接。结果,前一阵子升级到1903之后就出bug了......症状:使用RDP客户端登录后远程电脑黑屏,鼠键都可以正常响应......原因这事又是微软的锅......显示驱动程序会报告它们加载能力上限。在以前Windows版本中会报告数据未...

计算机房档案管理,计算机档案管理与控制措施-程序员宅基地

文章浏览阅读157次。计算机是工业化时代和信息化时代的一种必然产物,在企业档案管理过程中具有重要作用,档案管理的效率提高离不开对于信息化时代的计算机管理方式的合理应用,受限于多种影响因素,计算机档案管理依然显得有些混乱,因此笔者的主要目的就是提供计算机档案管理的理论基础,实现新的技术条件下人们对于计算机档案管理的重新认识,并且提高其管理效率,使得大量的档案管理工作变得相对简单,保证档案的完整性,这样才能为人力资源的管理..._计算机中心档案

unity3d 改变脚本名称_Unity3D脚本中文系列教程(一)-程序员宅基地

文章浏览阅读439次。一、 脚本概览这是一个关于unity内部脚本如何工作的简单概览。Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的。在脚本对象内部不同志的函数被特定的事件调用。最常用的列在下面:Update:这个函数在渲染一帧之前被调用,这里是大部分游戏行为代码被执行的地方,除了物理代码。FixedUpdate:这个函数在每个物理时间步被调用一次,这是处理基于物理游戏的地方。在任何函数之外的代码:在任..._创建unity脚本 改名

pyqt 实现对label属性修改及动态布局_pyqt label更改文字-程序员宅基地

文章浏览阅读4.7k次。实现这个的方法主要是创建不定数目的标签,及信息的传递。_pyqt label更改文字

数据库开发,面试准备_面试80万数据库搭建-程序员宅基地

文章浏览阅读163次。mysql的总结:https://blog.csdn.net/qq_38973672/article/details/88260148安装,mysql5.5版本自定义安装,路径不能有中文空格,运行mysql相关配置,detailed Configuration 精细配置,developerMachine开发者机器,multifunctional Database 多用途数据库,设置数据库最..._面试80万数据库搭建

PPA手把手——Python pdfplumber、pypdf2 常用方法总结_pypdf2中pageobject-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏8次。艺赛旗 RPA9.0全新首发免费下载 点击下载http://www.i-search.com.cn/index.html?from=line1这两天学习了一些处理 PDF 文档的方法,网上查找资料的过程中发现很多处理 PDF 文件的库,多方尝试后推荐两个比较好用的。若处理对象是 PDF 文档本身,则推荐使用 pypdf2,如对 PDF 文档进行分割, 合并, 插入等操作.若处理对象是 PD..._pypdf2中pageobject

推荐文章

热门文章

相关标签