C:使用以指针为参数的 void 函数更改 char 数组的值

标签 c arrays pointers char void

如果我尝试从 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/

上一篇:转换为函数

下一篇:Netbeans 中的 C 程序

相关文章:

c - Malloc 改变 C 中的值

c++ - 指向结构数组属性的数组指针

c++ - 为什么 CUDA 固定内存这么快?

c - 初始化一个结构体数组,里面有数组

java - 将数组传递给构造函数而不声明它?

c++ - 我想计算 char* word_list[] (C++) 中的字符串数量

混淆 i++ 和 i=i+1

c - 从文本文件中读取一行并将其删除

arrays - 将异构变量数组转换为结构的函数(保留名称)

c++ - 什么是数组到指针衰减?