请教字符组合重复数组的问题:
本帖最后由 ZHAOBAO511 于 2021-4-14 11:05 编辑#include<string.h>
#include<stdio.h>
char gps_num={};
int main(void){
char gps_num1;
char gps_num2;
int i;
for(i=0;i<2;i++)
{
sprintf(gps_num1,"N:%.4f",3447.784756);
sprintf(gps_num2,"S:%.4f",11335.7959);
strcat(gps_num, " ");
strcat(gps_num, gps_num1);
strcat(gps_num, " ");
strcat(gps_num, gps_num2);
printf(gps_num);
gps_num="";
gps_num1="";
gps_num2="";
}
return 0;
}
我的目的是将两个数组或变量中的数组合到一起,每次组合都一样。例如:1 ,2组合后就是1,2 上面程序打印后第一次是1,2 第二次变成了1,2,1,2,我在下面已清空的,为什么没用? “请教一个字符组合的问题”标题不合格。请自行修正。
帖子标题必须能充分说明帖子的内容。如你要问AVR的ADC如何才能测量得比较准确,“AVR的ADC如何消除干扰测量得比较准确?”是合格的标题。不合格举例:
1:小女子冰天雪地裸体跪求解决方法
2:救命啊...
3:高手请出招,一个无法解决的AVR问题
4:一个困扰学习单片机初学者,惊动单片机开发者的难题
5:AVR的ADC测量 (点评:你到底是问问题,或是有技术心得与大家分享?)
读写0长度数组? 就是呢,为啥0长度,系统都没有崩掉? armok. 发表于 2021-4-14 09:32
“请教一个字符组合的问题”标题不合格。请自行修正。
帖子标题必须能充分说明帖子的内容。如你要问AVR的A ...
谢老大提醒,已改。 tcm123 发表于 2021-4-14 09:49
读写0长度数组?
谢谢,我是为了扩展后面要多个,写0也没问题,调试通过,编译环境C-FREE。 1a2b3c 发表于 2021-4-14 10:38
就是呢,为啥0长度,系统都没有崩掉?
崩不崩无所谓,关键是为什么重复。 ZHAOBAO511 发表于 2021-4-14 11:07
谢谢,我是为了扩展后面要多个,写0也没问题,调试通过,编译环境C-FREE。 ...
调试能通过?你这个编译能通过我能相信,调试堆栈没有溢出(事实上早已溢出只是你选择性的故意忽视)那都是瞎猫碰上死耗子了,至于其他的,你还要问么
你故意写有缺陷的程序,目的是为了什么?考验编译器吗? lz你这是搞笑来的呢
实在想研究就放断点看全局变量和两个局部变量各自的地址呗。打印字符串无外乎就是啥时候遇到\0的问题。 按照 LZ 的功力,不应该不懂 C 语言啊,
gps_num=""; 这就叫清空了?
长度为0是要写柔性数组不成?就算是柔性数组,也需要实体内存区来支撑 takashiki 发表于 2021-4-14 11:30
调试能通过?你这个编译能通过我能相信,调试堆栈没有溢出(事实上早已溢出只是你选择性的故意忽视)那都 ...
您试试C_FREE再说 t3486784401 发表于 2021-4-14 14:32
按照 LZ 的功力,不应该不懂 C 语言啊,
gps_num=""; 这就叫清空了?
说调试不过的,大家自己看,事实为准。 目前问题已解决,放前面就可以。 在 VS2005 下, gps_num= ""; 这句话连编译都不能通过,更不用说警告了。因为:
① 发生了指针到整形的隐式转换;② 发生了整形到字符型的隐式转换。
你的这个编译器如果连警告都不给,怕是已经学废了 t3486784401 发表于 2021-4-14 15:39
在 VS2005 下, gps_num= ""; 这句话连编译都不能通过,更不用说警告了。因为:
① 发生了指针到整形的 ...
这样写c,真有点看不懂。这个我觉得应该编译不过,当然,也可能编译器能过,其实不管过不过,都不应该这样写吧. 凡是都要坚持原则,
数组长度不能为零;
这是基本原则,
尤其是C语言,必须坚持原则;
尽管有的编译器,会放行。
但是,还是要坚持原则。 ZHAOBAO511 发表于 2021-4-14 15:14
说调试不过的,大家自己看,事实为准。
不错不错,分配0字节内存,可以容纳任意多内容。
作为调试,请断点下,打开内存窗口,看看gps_num、 gps_num1、gps_num2是不是越界了。你给它们分配足够的空间,自然就不会出现你楼主位的问题。
从你的签名档以及你的积分来看,我深深的怀疑你的号是不是被盗了 t3486784401 发表于 2021-4-14 15:39
在 VS2005 下, gps_num= ""; 这句话连编译都不能通过,更不用说警告了。因为:
① 发生了指针到整形的 ...
谢谢,有时以事实为准,当然这个只是临时调试试试,后面写程序肯定不会这样。 jiki911 发表于 2021-4-14 16:20
凡是都要坚持原则,
数组长度不能为零;
这是基本原则,
谢谢,临时调试一下。 takashiki 发表于 2021-4-15 06:06
不错不错,分配0字节内存,可以容纳任意多内容。
作为调试,请断点下,打开内存窗口,看看gps_num、 gps_ ...
谢谢,临时调试一下。
页:
[1]