Follow

我傻了
自己写不如用库函数
库函数不如系统调用
老师您这是把我们往底层在带啊...

(一眼就能看出问题出在数据读写上的老师为什么会来教我这样的废物的说...)

· · Web · 3 · 0 · 1

@233mc44 不是套娃...就不知道你在c里面处理字符串有没有搞到蛋疼然后直接调用string库的习惯?反正我每次搞大课设,遇到字符串问题都直接用库然后不管。
结果这次被编译器的不同编译方式给坑了(函数传参如果是字符串能否进行读写的问题)。所以新问题要用更新的技术这我能理解,但是越学越回去这是什么东西啊喂!

@mao 不懂,反正是很难,刚刚在贴吧看见一个大学生有偿求别人代写c语言作业 :pio_hematemesis:

@233mc44 常规操作:大佬不想接毕竟太简单,菜鸡接不了,我们这种普通人被自己的课设/作业压死,而且好不容易有点娱乐的时间你叫我打工?不可能的.jpg(除非是没生活费了)

@mao 估计很多人写程序也就图一乐,要真有职业选手也没那个时间赚这点外快 :pio_huaji:

@mao @233mc44 能否读写那个能不能举一个实例,然后C语言的字符串操作我感觉问题不大,C语言资源清理着实恶心到我。我用C语言感觉最无奈的是过于底层,想干个啥依赖系统接口或者得上其他库,标准库反正要啥没啥。

@literalkernel @233mc44 某个函数在主函数调用的时候,传参是类似StringDeal(“This is what”);
这样。然后因为是字符串,所以有的编译器设定的是能够直接进行写,有的是只能读,所以用strtok()做分割的时候就很恶心,有的环境因为装了其他的编译器能跑通,有的不行。

@mao @233mc44 等等,我能不能理解成你传了个字符串字面值常量,然后打算在函数里头对这个字符串字面值写?

@mao @233mc44 如果我猜对了那问题很大,C语言标准明确说了,往字符串字面值常量写值属于未定义行为,你不该这么做。编译器分配给字符串字面值常量的是静态区,那里只读不能写的。你要对字符串写值还得老老实实malloc。

@literalkernel @233mc44
你理解的没错,就是字符串当参数传进去。
要看编译器,cc编译是肯定不行的,但是好像gcc还是啥是能这么搞的(反正我是晕了)
吐槽部分:话说为什么要搞字符串这个复杂的东西之后,还需要字符和字符数组呢?直接针对字符串操作他不行吗?而且明明都是指针,我只是把相应的位进行置零,又不是需要更多的空间,这也有问题?以及strtok(),鬼知道这个东西要进行写操作啊,要搞就直接做成只读的嘛...这么麻烦真的没有问题吗...

@mao @233mc44 string literal写值是未定义行为,就算用编译器可以也不要用(不可移植特性)。字符串和字符数组是一个东西,除了字符串有一个约定叫空字符。C语言指针和数组是差不多是一起的,4种情况除外,你写一个数组类型会自动退化成指针,数组的数组要复杂很多,退化成指向数组的指针。。。另外我这边查到的strtok的例子用的字符数组,区

@mao :pio_huaji: libcxx, libc, /usr/src/sys/kern(指FreeBSD的内核)

Sign in to participate in the conversation
小森林

每个人都有属于自己的一片森林,也许我们从来不曾走过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢。愿这里,成为属于你的小森林。