如果我尝试从 main 打印(如图所示),我会得到一堆奇怪的符号。如果我尝试从 func 打印,则会收到“段错误”。
我还有警告:警告:赋值从指针生成整数而不进行强制转换
这是作业的一部分,因此我无法更改 main (它位于另一个文件中,并包含 func 的原型(prototype)。)
编辑:我明白了。使用 "而不是 ' 是我的问题。我总是这样做。
#include <stdio.h>
int main(void)
{
char s[33];
void func(char *s);
func(s);
printf("%s\n", s);
return 0;
}
void func (char *s){
s[0]="b";
s[1]="o";
s[2]="p";
}
最佳答案
错误 1:您尝试分配字符数组而不是字符。使用单引号来指定字符。
错误 2 : 函数没有在 main 中调用
错误3:您已将字符数组声明为“str”,但后来您将其引用为“s”
关于C:使用以指针为参数的 void 函数更改 char 数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28447156/