c - 从 'char' 到 'char' 的无效转换 [-fpermissive] 16 | A[++顶部] = x; | ^ | | | 字符*
问题描述
我正在尝试将字符串添加到堆栈中。请告诉我程序有什么问题。在这个程序中,我试图将堆栈实现为数据结构。我知道如何将数字添加到堆栈和/或删除它们,但我不知道如何添加字符输入。现在我想做一个项目列表,然后打印整个列表。
//Array implementation of the stack
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 11
char A[MAX_SIZE];
int top = -1;
void Push(char x[])
{
if (top == MAX_SIZE - 1) {
printf("Error! Array size: %d exceeded\n", MAX_SIZE);
return;
}
A[++top] = x;
}
void Pop() {
if (top == -1) {
printf("Error! No element to pop\n");
return;
}
top--;
}
char Top()
{
return A[top];
}
void Print()
{
int i;
printf("Stack: ");
for (i = 0; i <= top; i++)
printf("%s ", A[i]);
printf("\n");
}
int main()
{
char name1[10] = "Pablo";
Push(name1);
char name2[10] = "Robert";
Push(name2);
Print();
}
从 'char' 到 'char' 的无效转换 [-fpermissive] 16 | A[++顶部] = x; | ^ | | | 字符*
解决方案
您的堆栈A
被声明为 的数组char
,因此它只能保存一个字符串(或一个字符数组)。在有问题的行中,您尝试将 a 分配char *
给单个char
.
您应该改为定义A
为一个数组char *
:
char *A[MAX_SIZE];
推荐阅读
- python - 如何在 tkinter 中保存事件?
- list - F# If 语句类型不匹配
- batch-file - 如何使用数组和绝对目录创建批处理循环?
- android - 当创建它的参数更改时,如何使 Android Jetpack Compose AndroidView 被替换?
- python - 如何找到在 Linux 上运行 Python3 的显示器的分辨率?
- angular - 如何以角度从firebase获取和操作现有数据
- r - 在 IF 条件下限制向量的 2 个边界
- android - 片段未附加到主机
- javascript - 我如何检测到键盘上的 V 键已被按下?
- python - Python Twilio 错误 - prolog 中不允许有内容。架构验证警告