如果我尝试从main打印(如图所示),我会得到一堆奇怪的符号。如果我尝试从func打印,我会得到"分段错误。"
我也有警告:警告:赋值从没有强制转换的指针生成整数
这是作业的一部分,因此我无法更改主要内容(位于另一个文件中并包含func的原型。)
编辑:我明白了。使用"而不是'是我的问题。我一直这样做。
#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";
}
答案 0 :(得分:0)
错误1:您尝试分配字符数组而不是字符。使用单引号分配字符 错误2:功能未在主内部调用 错误3:您已将字符数组声明为'str',但稍后您将其称为's'
答案 1 :(得分:0)
假设这是你打算做的:
使用单引号将字符分配给char array
,并将null终止字符串。
#include <stdio.h>
void func(char *s);
int main(void)
{
char str[33];
func(str);
printf("%s\n", str);
}
void func (char *s){
s[0]='b';
s[1]='o';
s[2]='p';
s[3] = '\0';
}