小编Sta*_*hta的帖子

在C中打印指针地址[两个问题]

我知道我的问题非常简单,但谷歌他们没有给我任何有用的结果......他们可能太简单了!!

第1名

char* createStr(){
    char* str1 = malloc(10 * sizeof(char));
    printf("str1 address in memory : %p\n", &str1);
    return str1;
}

int main(void){
    char* str2 = createStr();
    printf("str2 address in memory : %p\n", &str2);
}
Run Code Online (Sandbox Code Playgroud)

结果:

str1 address in memory : 0x7fffed611fc8
str2 address in memory : 0x7fffed611fe8
Run Code Online (Sandbox Code Playgroud)

为什么地址不同于createStr()函数以及如何释放(str1)?

第2号

int main(int argc, int *argv[]){
    printf("Basename is %s ", (char*) argv[0]);
    if(argc > 1 ){
        printf("and integer arg is : %d.\n", (int) *argv[1]);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我编译并运行$ ./test 3,我怎么能得到int 3? …

c free int pointers command-line-arguments

9
推荐指数
2
解决办法
9836
查看次数

PySide(PyQt)QAbstractItemModel

我正在尝试为树视图实现一个简单的模型,我无法弄清楚它为什么不起作用..似乎我的所有节点都是我的根节点的子节点,尽管它们中的三个应该是它的第一个孩子的子节点.此外,我可以看到我的hasChildren方法进入无限循环..任何帮助将不胜感激.

这是我的代码:

#!/usr/bin/env python2

from PySide import QtGui, QtCore
import sys

class SI(object):

    children = []

    def __init__(self, group=None, parent=None):
        self.parent = parent
        self.group = group

    def data(self, column):
        return self.group[column]

    def appendChild(self, group):
        self.children.append(SI(group, self))

    def child(self, row):
        return self.children[row]

    def childrenCount(self):
        return len(self.children)

    def hasChildren(self):
        if len(self.children) > 0 :
            return True
        return False

    def row(self):
        if self.parent:
            return self.parent.children.index(self)
        return 0

    def columnCount(self):
        return len(self.group)

class SM(QtCore.QAbstractItemModel):

    root = SI(["First", "Second"]) …
Run Code Online (Sandbox Code Playgroud)

qt qtreeview pyside qabstractitemmodel model-view

5
推荐指数
1
解决办法
4080
查看次数

在C中释放多维数组

假设我们有:

void createMultiArray(){
    int i,j;
    char*** codes = malloc(5 * sizeof(char**));
    for ( i = 0; i <= 4; i++ ) {
        codes[i] = malloc((i+1) * sizeof(char*));
        for ( j = 0; j <= i; j++ ) {
            codes[i][j] = malloc(2 * sizeof(char));
        }
   }
Run Code Online (Sandbox Code Playgroud)

我该如何免费codes

free(codes);
Run Code Online (Sandbox Code Playgroud)

要么

int i,j;
for(i = 0; i <=4; i++){
    for(j = 0; j <= i; j++){
        free(codes[i][j]);
    }
    free(codes[i]);
}
free(codes);
Run Code Online (Sandbox Code Playgroud)

c free memory-leaks memory-management multidimensional-array

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

PySide QTextEdit html 表格宽度

我试图设置我的 html 表格的宽度以QTextEdit通过内联样式表获取我的总宽度,但表格的宽度不会改变。我试过以百分比(%)甚至像素(px)的形式给它赋值,但没有任何变化..你能看看吗?

#!/usr/bin/env python2

import sys
from PySide import QtGui, QtCore

class MainWid(QtGui.QWidget):
    htmlTable = '''<table border="1" style="width:100%"> <!-- XXX Nothing happens!! -->
        <tr><th colspan="2">HEADER</th></tr>
        <tr><td>name</td><td>value</td></tr>
        <tr><td>name</td><td>value</td></tr>
    </table>'''
    def __init__(self, parent=None):
        super(MainWid, self).__init__(parent)
        self.initgui()

    def initgui(self):
        lay = QtGui.QVBoxLayout()
        txt = QtGui.QTextEdit(self)

        lay.addWidget(txt)
        txt.setReadOnly(True)
        txt.setHtml(self.htmlTable)

        self.setLayout(lay)
        self.show()

def main():
    app = QtGui.QApplication(sys.argv)
    wid = MainWid()
    sys.exit(app.exec_())

if __name__=="__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

我先谢谢大家。

html qt pyqt pyside qtextedit

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

c释放malloc(0)

我在c中编写一个应用程序,我正在动态分配一些数组所需的内存.我知道很多这些数组都需要零分配.那么,当我打电话给他们时会有问题吗?例如free(malloc(0 * sizeof(int)));?我知道我的应用程序在我的机器上编译并运行正常,但我可以依赖它吗?干杯!

c malloc free zero

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

赋值使整数警告指针

标题:

#ifndef BIT_H_INCLUDE_GUARD
#define BIT_H_INCLUDE_GUARD

typedef unsigned char byte;

typedef struct{
    size_t* size;
    byte* map;
} bit;

bit* bdcteate(byte* size);

#endif /* BIT_H_INCLUDE_GUARD */
Run Code Online (Sandbox Code Playgroud)

资源:

#include <stdlib.h>
#include "bit.h"

bit* bdcreate(byte* size){
    bit* d;
    byte i;
    size_t s = 0;
    for(i = 1; i < size[0]; i++){
        s += (size_t) size[i];
    }
    if(!(d = malloc(sizeof(bit)))){
        return (bit*) NULL;
    }
    if(!(d->size = malloc(sizeof(size_t)))){
        return (bit*) NULL;
    }
    if(!(d->map = malloc(s * sizeof(byte)))){
        return (bit*) NULL;
    }
    *d->size = s;
    return (bit*) …
Run Code Online (Sandbox Code Playgroud)

c header gcc-warning

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