@mao 总结:套娃
@233mc44 不是套娃...就不知道你在c里面处理字符串有没有搞到蛋疼然后直接调用string库的习惯?反正我每次搞大课设,遇到字符串问题都直接用库然后不管。
结果这次被编译器的不同编译方式给坑了(函数传参如果是字符串能否进行读写的问题)。所以新问题要用更新的技术这我能理解,但是越学越回去这是什么东西啊喂!
@literalkernel @233mc44 某个函数在主函数调用的时候,传参是类似StringDeal(“This is what”);
这样。然后因为是字符串,所以有的编译器设定的是能够直接进行写,有的是只能读,所以用strtok()做分割的时候就很恶心,有的环境因为装了其他的编译器能跑通,有的不行。
@literalkernel @233mc44
你理解的没错,就是字符串当参数传进去。
要看编译器,cc编译是肯定不行的,但是好像gcc还是啥是能这么搞的(反正我是晕了)
吐槽部分:话说为什么要搞字符串这个复杂的东西之后,还需要字符和字符数组呢?直接针对字符串操作他不行吗?而且明明都是指针,我只是把相应的位进行置零,又不是需要更多的空间,这也有问题?以及strtok(),鬼知道这个东西要进行写操作啊,要搞就直接做成只读的嘛...这么麻烦真的没有问题吗...
@mao @233mc44 string literal写值是未定义行为,就算用编译器可以也不要用(不可移植特性)。字符串和字符数组是一个东西,除了字符串有一个约定叫空字符。C语言指针和数组是差不多是一起的,4种情况除外,你写一个数组类型会自动退化成指针,数组的数组要复杂很多,退化成指向数组的指针。。。另外我这边查到的strtok的例子用的字符数组,区