小编use*_*584的帖子

C++中指针的地址

我试图理解指针,我不能得到一件事.例如,

//part of code

int *p;
int tab[3];
Run Code Online (Sandbox Code Playgroud)

所以现在我们有变量tab包含数组的第一个元素的地址.我想创建一个指向该指针的指针.所以,我会这样做:

p=&tab;
Run Code Online (Sandbox Code Playgroud)

如果它可以工作,p将是tab(这意味着它会指向tab)的地址不幸的是它不起作用.那么如何获得指针本身的地址呢?地址的正确类型是什么?(addresstype *p)我想指向内存块,它包含第一个元素的地址tab,而不是它tab自身.

c++ pointers

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

C read() 和 write() while 循环

这是示例代码:

int nbajt; int buf[];

 // we opened file and get descriptor fd

 while ((nbajt = read(fd, buf, 5)) > 0) {
        if (write(fd2, buf, nlbajt) == -1) {
            perror("ERROR");
            exit(1);
        }
    } 
Run Code Online (Sandbox Code Playgroud)

我不明白当我们使用 while 循环时它是如何工作的。这个循环会进行多少次?(长度的倍数buf?)。每个循环步骤后是否nbajt只有10 + buf文件位置的值会更改 1 个位置?因此,在第一步中,nlbajt = 1我们将 buf 第一个位置 char 写入,然后将其写入fd2?。最后我们有nlbajt==0所以这意味着它是文件的结尾?我将不胜感激检查我是否错了。我主要关心的是 nbajt 值如何变化。这种态度有何不同:

nbajt = read(fd, buf, 5));
write(fd2, buf, sizeof(a));
Run Code Online (Sandbox Code Playgroud)

c buffer system file-descriptor

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

6502 地址的汇编和表示

我试图理解汇编 6502 中的这种寻址模式。

例如我们在程序中有这样的指令:

我们知道“text”标签低于$2000 - 高字节是20,低字节是00,累加器中我们有数字30。现在第一个问题是:当我输入时发生了什么这STA $80. 是否意味着我们存储的整个地址累加器是0080?现在假设我们在 $80 下放置数字 00,在 $81 下放置数字 20。Y 为零。现在为什么当我使用这个时:

sta ($80),y 
Run Code Online (Sandbox Code Playgroud)

我得到的地址是2000?这是怎么回事?在0080下我们只有00(字节)而不是整个地址(2字节)2000。我知道($80)意味着我们去$80指向的地址。但我们只存储了 00,而不是整个地址 2000。如果有任何帮助,我将不胜感激。

indexing assembly 6502 addressing

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

对main()中函数的未定义引用

我试图在单独的文件上制作程序.不幸的是,我在尝试构建代码时遇到了错误.它指向未定义的对constuctors,destructos和函数CzynnikiPierwsze的引用.所以我决定将整个代码放在一个代码中.仍然存在main()函数的问题:未定义引用'CzynnikiPierwsze(int)'任何想法都错了?这是整个代码:

#include <iostream>
#include <cctype>
#include <vector>


using namespace std;
vector<int> CzynnikiPierwsze(int);


class NieprawidlowaDana                           //wyjatki
    {};
class SpozaZakresu
    {};



class RozkladLiczby{
    private:
        int *tab;
    public:
        RozkladLiczby(int);                  //konstruktor
        vector<int> CzynnikiPierwsze(int); //metoda
        ~RozkladLiczby();
};  
Run Code Online (Sandbox Code Playgroud)

///////////////// CLASS的身体///////////////////////////// ////////

RozkladLiczby::~RozkladLiczby()         //destruktor
{}

RozkladLiczby::RozkladLiczby(int n){
    int* tab = new int[n+1];
    int i,j;

    for( i=0;i<=n;i++)
        tab[i]=0;                  //zerujemy tablice

    for( i=2;i<=n;i+=2)
        tab[i]=2;                  //zajmujemy sie liczbami parzystymi

    for(i=3; i<=n;i+=2)
        for(j=i;j<=n;j+=i)         //sito erastotesa
            if(tab[j]==0)
                tab[j]=i;


}

   vector<int> RozkladLiczby::CzynnikiPierwsze(int m){
        vector<int> tablica;
        while(m!=1){
            tablica.push_back(tab[m]);
            m=m/tab[m];
        }

return tablica;

}


////////////////////////END …
Run Code Online (Sandbox Code Playgroud)

c++ linker undefined-reference

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

Java KeyListener与Keybinding

我想写一个计算器并遇到问题.我已经为所有按钮创建了一个actionlistener,现在我希望能够从键盘输入数据.我是否需要为KeyListener或Keybinding完成整个事情,还是有任何其他方法可以在单击按钮后将其发送到actionlistener中的指令?什么更好:Keylistener或Keybinding

java swing keylistener key-bindings actionlistener

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