网站建设资讯

NEWS

网站建设资讯

[每日一氵]C语言函数不要返回数组地址-创新互联

以下两种初始化字符串的方式并返回

金昌ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
char *get_str():
	char *str = "LBWNB";
	return str 

char *res = get_str();
char *get_str():
	char str[] = "LBWNB";
	return str 

char *res = get_str();

后者由于是数组,所以返回后给外部的 res 变量,res 会变成 NULL,(函数执行完毕后释放了)
而前者这样的申请方式,返回给外部 res 变量,res 可以正常访问字符串 “LBWNB”

值得一提的是,char *str = "LBWNB";这样执行,字符串是被存在**(全局)静态数据区**的,其只可以被访问,不可以被修改,如果执行*(str+1) = 'v',其编译可以通过,但在执行过程中,可能报segmentfault

char str[] = "LBWNB";执行之后,字符串数据存在栈区,可以被修改.

  • 顺便安利一个C的在线编译网站:https://godbolt.org/

  • 其余详细内容可查看: https://blog.csdn.net/lanyang123456/article/details/6669926

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站题目:[每日一氵]C语言函数不要返回数组地址-创新互联
分享网址:http://cdweb.net/article/csoojo.html