由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 帮忙找个错
相关主题
问个c语言的问题问个字符串的基本问题
C 语言,初学者,简单问题(2)请教C的类型转换问题
char s[]和char *ps的不同c里全局数组的再次赋值问题
谁帮我解释一下这个代码Array in C
刚看完类这一章,有些大小问题,请指教,谢谢two general C++ question
请教一道c/c++题Linux GNU C, readlink问题
呼叫THRUST等C语言牛牛,菜鸟级C语言指针问题C#的formated output有点不方便呀。。。。
c的问题solidot上看来的
相关话题的讨论汇总
话题: sprintf话题: char话题: test话题: printf话题: 赋值
进入Programming版参与讨论
1 (共1页)
n****u
发帖数: 467
1
#include
int main(){
char *s="test";
sprintf(s,"t");
printf("%s\n",s);
}
Bus error。C 的小例子,是先初始化,然后想用sprintf重新赋值。
N***m
发帖数: 4460
2
sprintf是这样用的吗?我都没看懂你想做什么

【在 n****u 的大作中提到】
: #include
: int main(){
: char *s="test";
: sprintf(s,"t");
: printf("%s\n",s);
: }
: Bus error。C 的小例子,是先初始化,然后想用sprintf重新赋值。

R*******e
发帖数: 36
3
1. s hasn't been allocated memory on the heap.
2. s pointes to the const string.
Alternative solution for your case:
int main(){
char *s= strdup("test");
sprintf(s,"t");
printf("%s\n",s);
free(s);
}
X****r
发帖数: 3557
4

char s[] = "test";

【在 n****u 的大作中提到】
: #include
: int main(){
: char *s="test";
: sprintf(s,"t");
: printf("%s\n",s);
: }
: Bus error。C 的小例子,是先初始化,然后想用sprintf重新赋值。

p***o
发帖数: 1252
5
回头LZ再问 sprintf(s, "Hello world!"); 会怎样你们又有的忙 ...

【在 X****r 的大作中提到】
:
: char s[] = "test";

n****u
发帖数: 467
6
谢谢两位的答复,确实改好了。
不过为什么呢?我的初始赋值也合法的啊。
石头说的好像有矛盾,既然指向了常数组有着呢么会没分配内存呢?
烦劳哪位给解释一下三个的区别:
char *s="xxx";
char s[]="xxx";
char *s=strdup("xxx");
先谢过
n****u
发帖数: 467
7
呵呵,这个应该是长度的问题吧。

【在 p***o 的大作中提到】
: 回头LZ再问 sprintf(s, "Hello world!"); 会怎样你们又有的忙 ...
p***o
发帖数: 1252
8
这年头没啥特殊的需要还是别学C了吧 ...

字符串常量。什么叫"常量",不能改的就叫常量,和分没分配内存没关系。
在当前的调用栈上分配4字节,函数返回(其实是离开{})的时候自动释放。
malloc 4字节+strcpy,所以要记得free。

【在 n****u 的大作中提到】
: 谢谢两位的答复,确实改好了。
: 不过为什么呢?我的初始赋值也合法的啊。
: 石头说的好像有矛盾,既然指向了常数组有着呢么会没分配内存呢?
: 烦劳哪位给解释一下三个的区别:
: char *s="xxx";
: char s[]="xxx";
: char *s=strdup("xxx");
: 先谢过

n****u
发帖数: 467
9
谢过,受教了
1 (共1页)
进入Programming版参与讨论
相关主题
solidot上看来的刚看完类这一章,有些大小问题,请指教,谢谢
C++一问请教一道c/c++题
请教一个const pointer的问题呼叫THRUST等C语言牛牛,菜鸟级C语言指针问题
高人指点怎么在embedded sys(atmel 系列)上写内存管理 (转载)c的问题
问个c语言的问题问个字符串的基本问题
C 语言,初学者,简单问题(2)请教C的类型转换问题
char s[]和char *ps的不同c里全局数组的再次赋值问题
谁帮我解释一下这个代码Array in C
相关话题的讨论汇总
话题: sprintf话题: char话题: test话题: printf话题: 赋值