警告:return 从整数生成指针而不进行强制转换
warning : return makes pointer from integer without a cast
struct Stack {
char top;
unsigned capacity;
char* array;
};
char*pop(struct Stack* stack)
{
if (isEmpty(stack)){
printf("Stack underflow\n");
}
return stack->array[stack->top--];
}
char* peek(struct Stack* stack)
{
if (isEmpty(stack)){
printf("Stack underflow\n");
}else{
return stack->array[stack->top];
}}
***main.c:56:29: warning: return makes pointer from integer without a cast [-Wint-conversion]
main.c:67:24: warning: return makes pointer from integer without a cast [-Wint-conversion]
我有这两个警告,我无法处理它们,我需要帮助,请
警告在这两行中:
return stack->array[stack->top--]......
return stack->array[stack->top]
消息很清楚。您正在尝试 return 整数而不是指针。
stack->array[stack->top--];
是数组 stack->array
中位置 stack->top--
的元素
所以将 return stack->array[stack->top--];
改为 return stack->array;
或将 return 类型更改为 char
而不是 char*
,具体取决于您想要实现的目标。
将两个函数 return 类型更改为 char
而不是 char*
因为 stack->array[stack->top]
将 return 一个字符而不是 char*
另外,附带说明一下,您的 peek()
没有 return 来自 if
分支的任何内容。将其更改为 return 某些东西(根据您的程序逻辑,一个虚拟字符)或将其设为独立的 if
语句,如 pop()
.
中的语句
struct Stack {
char top;
unsigned capacity;
char* array;
};
char*pop(struct Stack* stack)
{
if (isEmpty(stack)){
printf("Stack underflow\n");
}
return stack->array[stack->top--];
}
char* peek(struct Stack* stack)
{
if (isEmpty(stack)){
printf("Stack underflow\n");
}else{
return stack->array[stack->top];
}}
***main.c:56:29: warning: return makes pointer from integer without a cast [-Wint-conversion]
main.c:67:24: warning: return makes pointer from integer without a cast [-Wint-conversion]
我有这两个警告,我无法处理它们,我需要帮助,请
警告在这两行中:
return stack->array[stack->top--]......
return stack->array[stack->top]
消息很清楚。您正在尝试 return 整数而不是指针。
stack->array[stack->top--];
是数组 stack->array
中位置 stack->top--
所以将 return stack->array[stack->top--];
改为 return stack->array;
或将 return 类型更改为 char
而不是 char*
,具体取决于您想要实现的目标。
将两个函数 return 类型更改为 char
而不是 char*
因为 stack->array[stack->top]
将 return 一个字符而不是 char*
另外,附带说明一下,您的 peek()
没有 return 来自 if
分支的任何内容。将其更改为 return 某些东西(根据您的程序逻辑,一个虚拟字符)或将其设为独立的 if
语句,如 pop()
.