gpt4 book ai didi

c - 为什么在 c 中动态分配时会出现段错误?

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:55 25 4
gpt4 key购买 nike

这是我的代码,当我运行它时,出现段错误。

 char *s = NULL;
s = (char *)malloc(5*sizeof(char));

s[0]='10';

s[1]='20';

printf("%s",s[1]);

请告诉错误在哪里以及为什么会发生这种情况。我的程序意图是动态创建一个字符串,逐字节给它一些值,然后逐字节打印值。

有什么方法可以将整数值添加到字符串中。因为,我有一种情况,字符串的长度是在字符串的第一部分,然后是数据。请建议在 C 中执行此操作的任何方法。

最佳答案

printf("%s", s[1]); 表示从 address (int)'20' 开始打印字符串。这显然是一个错误。应该是:s[2]='\0'; printf("%s", s+1/*&s[1]*/);

关于c - 为什么在 c 中动态分配时会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28668251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com