小编OMG*_*OMG的帖子

使用iterator和const_iterator调用erase

为什么调用erase容器的成员函数const_iterator失败?

它适用于非const iterator.

c++ data-structures

22
推荐指数
3
解决办法
9073
查看次数

恢复QMainWindow的浮动工具栏时出现问题

在浮动工具栏中恢复具有QCombobox的QMainWindow状态时,我看到一个问题。恢复浮动工具栏后,我的QCombobox无法获得焦点,直到我单击工具栏手柄并将其移动。以下是显示问题的gif,使用QT 5.13。 在此处输入图片说明

文件float_toolbar.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = floating_toolbar
TEMPLATE = app


DEFINES += QT_DEPRECATED_WARNINGS

 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++11

SOURCES += \
        main.cpp \
        mainwindow.cpp

HEADERS += \
        mainwindow.h

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
Run Code Online (Sandbox Code Playgroud)

档案:main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w; …
Run Code Online (Sandbox Code Playgroud)

linux qt qcombobox qtoolbar qt5

6
推荐指数
1
解决办法
180
查看次数

将char指针数组传递给函数

我写了以下示例代码来演示我的问题

#include <iostream>
#include <string.h>

using namespace std;

void f (char*** a)
{
    *a = new (char*[2]);
    *a[0] = new char[10];
    *a[1] = new char[10];
    strcpy(*a[0], "abcd");
    strcpy(*a[1],"efgh");
}

int main ()
{
    char** b = NULL;
    f(&b);
    cout<<b[0]<<"\n";
    cout<<b[1]<<"\n";
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

在这段代码中我发现a = new(char [2]); 不分配*a [1]的内存.

在gdb中我得到了以下seg错误.

Program received signal SIGSEGV, Segmentation fault.
0x0000000000400926 in f (a=0x7fffffffdfe8) at array1.cpp:10
10          *a[1] = new char[10];
(gdb) p *a[1]
Cannot access memory at address 0x0
Run Code Online (Sandbox Code Playgroud)

这真让我困惑.有人可以解释我哪里出错了.

我知道我可以传递像void f(char**&a)这样的参数,并通过调用函数f(b)来实现.但我想知道如果我使用char***a想要发生的事情.它也应该工作.对不起,如果这是一个愚蠢的问题. …

c c++ pointers

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

删除全局ptr

嗨,只是想知道我是否删除了全局ptr,这会导致内存泄漏

c++

0
推荐指数
1
解决办法
1684
查看次数

我每次从函数返回时都可以重置全局变量的值

我想要一个函数应该每次返回时将全局变量值重置为0.

我知道我可以gVar=0;在每个return语句之前添加,但这不是我想要的方式,因为新开发人员可能没有这些信息并且可能无法重置gVar值.

要求是

global int gVar = 10;
void fun() 
{
 // Need to modify gVar Here 
  gVar = 15;
  .
  .
  .
  gVar = 20;
  if (some condition)
         return;
  else 
         return; 
..
// more return possible from this function 
// also new developer can add more return statement 
// i want every time function return it should set gVar=0
} 
Run Code Online (Sandbox Code Playgroud)

c variables global function

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

标签 统计

c++ ×3

c ×2

data-structures ×1

function ×1

global ×1

linux ×1

pointers ×1

qcombobox ×1

qt ×1

qt5 ×1

qtoolbar ×1

variables ×1