c - 声明 char* 不适用于 strcat()

标签 c

此代码编译时没有错误,但打开应用程序后,它会显示:

file.exe has stopped working

#include <string.h>
#include <stdio.h>
int main() {
  char *a = 'Hello';
  char *b = 'World';
  strcat(a,b);
  puts(a);
}

我哪里出错了?

最佳答案

您需要分配足够的空间并使用双引号而不是单引号。您可以使用数组。

#include <string.h>
#include <stdio.h>
int main() {
  char a[20] = "Hello";
  char b[10] = "World";
  strcat(a,b);
  puts(a);
}

关于c - 声明 char* 不适用于 strcat(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50967927/

相关文章:

c - sprintf 代码占用大量空间(嵌入式)

c - 在 linux 中使用 C 的简单 shell 实现,fork 导致无限循环

c - 未初始化的结构成员 : best practice

C IPC等待 child

c - Netlink 组播内核组

c - 这个枚举是什么意思?

c - 如何在 C 中直接访问原始高清数据?

c - 仅在 C 中使用指针打印字符串数组

c++ - 将大型 char8 c 数组转换为 short16 的最快方法是什么?

c++ - 内存模型和并发