标签: stack

分段故障(核心转储)问题,堆栈

我不知道我在哪里出错了,任何帮助都会有所帮助.我试图用2个不同的字符串数组制作一副牌并将其打印到控制台.编译很好,但是当我运行它时,我得到"Segmentation fault(core dumped)"

/*
* BlackJack.c
*
*  Created on: Feb 25, 2014
*      Author: Danny Hunn
*      25 Feb 14 builds a deck for Black Jack
*/

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define NUM_SUITS 4
#define DECK_SIZE 52
#define NUM_RANKS 13


void swap(char *first,char *second)// swapping pointers
{
char temp = *first;
*first = *second;
*second = temp;

}
void shuffle(char *deck[])
{
int seed, gen, i;
seed = (int) time(0);
srand(seed);

for(i =0; i < …
Run Code Online (Sandbox Code Playgroud)

c stack

-2
推荐指数
1
解决办法
82
查看次数

MyStack.Reverse() 不起作用

我想反转堆栈,因此顶部的元素应该为零,反之亦然。我知道这样做可能不是正确的操作,但我想这样做。如果没有,我想知道为什么这不起作用

当我做

List<string> MyList = new List<string>();
MyList.Reverse()
Run Code Online (Sandbox Code Playgroud)

有用。但不是这个。

Stack<string> MyStack = new Stack<string>();
MyStack.Reverse()
Run Code Online (Sandbox Code Playgroud)

有什么想法/解决方案吗?

感谢和问候,

加内什

c# stack reverse

-2
推荐指数
1
解决办法
920
查看次数

如何使用堆栈计算 n 的阶乘

我需要使用堆栈计算 n 的阶乘,并且我编写的代码不返回任何结果。我也不知道 pop stack 真正做了什么(它的第二个参数是什么)所以我只是在那里使用了一个随机值。我使用int **x;是因为我不知道该放什么pop(&mystack,*x);

#include <iostream>
using namespace std;
int n;
int aux;
int aux1;
int aux2;
int **x;
typedef struct {
    int content[100];
    int top;
} stack;
stack mystack;

int push(stack *somestack,int somevalue)
{
    if (somestack->top+1>=100)
        return 1;
    (*somestack).top++;
    (*somestack).content[(*somestack).top]=somevalue;
    return 0;
}

int pop(stack *somestack, int *oldvalue)
{
    if((*somestack).top==0)
    {
        return 1;
    }
    *oldvalue=(*somestack).content[(*somestack).top];
    return 0;
}

int main()
{
    cout<<"n=";
    cin>>n;
    push(&mystack,n);
    int direction=1;
    while(mystack.top>=1)
    {
        if((direction==1)&&(mystack.content[mystack.top]>1))
        {
            aux=mystack.content[mystack.top];
            push(&mystack,aux-1); …
Run Code Online (Sandbox Code Playgroud)

c++ stack factorial

-2
推荐指数
1
解决办法
8430
查看次数

C++谁将结构存储在堆栈中(STL)

我遇到这样的问题: C++:将结构存储在堆栈中

我的代码:

#include <stdio.h>
#include <stack>
#include <iostream>
#include <string>
using namespace std;

struct adresse{

    string info;
};

int main(){

    string eingabe;
    stack<adresse> Stack1;

    cout << "Bitte Ausdruck eingeben: " << endl;
    getline( cin, eingabe);

    adresse* temp;
    temp = new adresse;
    temp->info = eingabe[0];
    Stack1.push(temp);

    return 0;  
}
Run Code Online (Sandbox Code Playgroud)

错误是:

reference to type 'const value_type'(aka 'const adresse') could not bind to an 
lvalue of type 'adresse *'Stack1.push(temp);
Run Code Online (Sandbox Code Playgroud)

怎么了?

谢谢

汤米

c++ stack struct stl

-2
推荐指数
1
解决办法
625
查看次数

查找有效{}()[]的字符串

如何修复我的代码,以便找到有效的(){} []?现在,它只返回true.

public static boolean isValid(String s){

        HashMap<Character, Character> specialChar= new HashMap<>();
        specialChar.put('{', '}');
        specialChar.put('[',']');
        specialChar.put('(',')');
        Stack<Character> stk = new Stack<>();
        for (int i=0; i<s.length(); i++){

            if (specialChar.keySet().contains(s.charAt(i))){
                stk.push(s.charAt(i));
            }
            else if (specialChar.values().contains(s.charAt(i))){
                if (!stk.empty()) {
                    stk.pop();
                }
            }

        }

        return stk.isEmpty();

    }


 System.out.println(isValid("{}{lll}]"));
Run Code Online (Sandbox Code Playgroud)

java stack hashmap

-2
推荐指数
1
解决办法
104
查看次数

-3
推荐指数
1
解决办法
270
查看次数

汇编:堆栈与堆?

在x86程序esp集中,堆栈指针ebp是堆指针吗?为什么我们有两个数据结构而不是一个?

什么esi/ edi代表什么?

heap assembly stack

-3
推荐指数
3
解决办法
7643
查看次数

哪个实现堆栈库在c ++中使用?

我读到ADT堆栈可以使用实现

数组

链表

ADT列表

但是当我使用堆栈时,我只是调用堆栈库.这些实现堆栈库中的哪一个使用?

c++ stack

-3
推荐指数
1
解决办法
80
查看次数

关于C中堆栈分配的问题

下面的代码片段是故意访问下面的下一个sizeof(int)字节t[4],所以我知道这里犯的错误.我只是作为一个实验来看看编译器如何处理堆栈分配.

int t[5], i;

for (i = 0; i <= 5; i++) {
   t[i] = 0;
}
Run Code Online (Sandbox Code Playgroud)

在Windows上执行此代码时,使用GNU C编译器的移植版本,程序总是陷入无限循环.我确信这只会发生,因为t并且i在堆栈上依次分配并t[5]指向与i变量相同的地址.因此,当执行t[5] = 0程序时实际将值设置i为零.

但是,当使用不同版本的GNU C编译器编译它时,我永远不会得到无限循环.地址t[5]与地址不同i.

我的问题是,为什么这种行为不同?我知道你不应该假设这个结果,但是不是堆栈分配应该以同样的方式发生吗?

我真正好奇的是编译器如何管理这些堆栈分配.有填充物吗?订单总是与源代码中的相同吗?显然,这与C标准无关,实现之间存在差异,甚至同一编译器的不同版本也存在差异.我很好奇,尽管在这种特殊情况下可能的结果和考虑因素是什么.

c stack memory-management

-3
推荐指数
1
解决办法
197
查看次数

究竟什么是C++关于指针和使用函数将它们初始化到堆中的行为?

目前在弄清楚为什么这个函数不能通过函数完全初始化main中的指针时遇到一些麻烦.这是我正在尝试做的一个例子.

#include <iostream>

void stuff(int * p)
{
    p = new int;
}

int main()
{
    int * p;
    stuff(p);
    *p = 1;
    std::cout << *p << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

基本上我试图让它成为一个函数使整数指针访问堆.在那之后,我用间接运算符和中提琴打印出来,我有一个输出.什么不起作用是p不是初始化.我究竟如何使用函数初始化指向堆的指针?

c++ heap stack pointers

-3
推荐指数
1
解决办法
67
查看次数

标签 统计

stack ×10

c++ ×5

heap ×3

c ×2

assembly ×1

c# ×1

factorial ×1

hashmap ×1

java ×1

memory-management ×1

pointers ×1

reverse ×1

stl ×1

struct ×1